<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GrPPI: grppi Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.svg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">GrPPI
   &#160;<span id="projectnumber">1.0</span>
   </div>
   <div id="projectbrief">Generic and Reusable Parallel Pattern Interface</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">grppi Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacegrppi_1_1detail__ff"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegrppi_1_1detail__ff.html">detail_ff</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacegrppi_1_1internal"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegrppi_1_1internal.html">internal</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1context__t.html">context_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of a context pattern. Represents a context that uses a given policy to run a transformer. This pattern is intended to switch between execution policies in a pattern composition.  <a href="classgrppi_1_1context__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1farm__t.html">farm_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of farm pattern. Represents a farm of n replicas from a transformer.  <a href="classgrppi_1_1farm__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1filter__t.html">filter_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of filter pattern. Represents a filter that can be used as a stage on a pipeline.  <a href="classgrppi_1_1filter__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1iteration__t.html">iteration_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of iteration pattern. Represents a iteration that can be used as a stage on a pipeline.  <a href="classgrppi_1_1iteration__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1mpmc__queue.html">mpmc_queue</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1pipeline__info.html">pipeline_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1reduction__info.html">reduction_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1farm__info.html">farm_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1filter__info.html">filter_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrppi_1_1stage__return__type.html">stage_return_type</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the return type after applying a list of transformers (stages) on a input type.  <a href="structgrppi_1_1stage__return__type.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrppi_1_1stage__return__type_3_01_input_00_01_transformer_01_4.html">stage_return_type&lt; Input, Transformer &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the return type of applying a function on a input type.  <a href="structgrppi_1_1stage__return__type_3_01_input_00_01_transformer_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrppi_1_1stage__return__type_3_01_input_00_01_transformer_00_01_other_01_8_8_8_01_4.html">stage_return_type&lt; Input, Transformer, Other ... &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the return type of consecutively applying a set of transformer functions on a input type.  <a href="structgrppi_1_1stage__return__type_3_01_input_00_01_transformer_00_01_other_01_8_8_8_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1pipeline__t.html">pipeline_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of pipeline pattern. Represents a pipeline with multiple chained transformers.  <a href="classgrppi_1_1pipeline__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1reduce__t.html">reduce_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of reduce pattern. Represents a reduction that can be used as a stage on a pipeline.  <a href="classgrppi_1_1reduce__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrppi_1_1parallel__execution__ff.html">parallel_execution_ff</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1thread__registry.html">thread_registry</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread index table to provide portable natural thread indices.  <a href="classgrppi_1_1thread__registry.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1native__thread__manager.html">native_thread_manager</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">RAII class to manage registration/deregistration pairs. This class allows to manage automatic deregistration of threads through the common RAII pattern. The current thread is registered into the registry at construction and deregistered a destruction.  <a href="classgrppi_1_1native__thread__manager.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1parallel__execution__native.html">parallel_execution_native</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Native parallel execution policy. This policy uses ISO C++ threads as implementation building block allowing usage in any ISO C++ compliant platform.  <a href="classgrppi_1_1parallel__execution__native.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1worker__pool.html">worker_pool</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pool of worker threads. This class offers a simple pool of worker threads.  <a href="classgrppi_1_1worker__pool.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1parallel__execution__omp.html">parallel_execution_omp</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenMP parallel execution policy.  <a href="classgrppi_1_1parallel__execution__omp.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1sequential__execution.html">sequential_execution</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sequential execution policy.  <a href="classgrppi_1_1sequential__execution.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrppi_1_1parallel__execution__tbb.html">parallel_execution_tbb</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">TBB parallel execution policy.  <a href="classgrppi_1_1parallel__execution__tbb.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a1e6cb40f6fea92dfcab82349b9f1f202"><td class="memTemplParams" colspan="2">template&lt;typename G &gt; </td></tr>
<tr class="memitem:a1e6cb40f6fea92dfcab82349b9f1f202"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a1e6cb40f6fea92dfcab82349b9f1f202">requires_generator</a> = typename std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#a28c0d1f51bb6e4da8f9bdea17cce7a5b">is_generator</a>&lt; G &gt;, int &gt;</td></tr>
<tr class="separator:a1e6cb40f6fea92dfcab82349b9f1f202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa953140c899760e8975a238af6f3443d"><td class="memTemplParams" colspan="2">template&lt;typename F &gt; </td></tr>
<tr class="memitem:aa953140c899760e8975a238af6f3443d"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#aa953140c899760e8975a238af6f3443d">requires_arguments</a> = typename std::enable_if_t&lt; <a class="el" href="namespacegrppi_1_1internal.html#a830d6dbae17c03ceb5baed4b1155dec7">internal::has_arguments</a>&lt; F &gt;(), int &gt;</td></tr>
<tr class="separator:aa953140c899760e8975a238af6f3443d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d8c8cf548425f816962f354b33a760e"><td class="memTemplParams" colspan="2">template&lt;typename F , typename I &gt; </td></tr>
<tr class="memitem:a0d8c8cf548425f816962f354b33a760e"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a0d8c8cf548425f816962f354b33a760e">requires_consumer</a> = typename std::enable_if_t&lt; <a class="el" href="namespacegrppi_1_1internal.html#a36a790dfd0f9122127ce74df378090e1">internal::has_void_return</a>&lt; F(I)&gt;(), int &gt;</td></tr>
<tr class="separator:a0d8c8cf548425f816962f354b33a760e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4b58959f8008485515060fe1a37fb21"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad4b58959f8008485515060fe1a37fb21"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ad4b58959f8008485515060fe1a37fb21">requires_context</a> = typename std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#ad3e99e81ed819576b5ee62e71144b77c">is_context</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:ad4b58959f8008485515060fe1a37fb21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a740be032c8440fb7780bdbb6a975db78"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a740be032c8440fb7780bdbb6a975db78"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a740be032c8440fb7780bdbb6a975db78">requires_execution_supported</a> = std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">is_supported</a>&lt; E &gt;(), int &gt;</td></tr>
<tr class="separator:a740be032c8440fb7780bdbb6a975db78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dc9ca8865ccbd7c535e0082b1813ed6"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a5dc9ca8865ccbd7c535e0082b1813ed6"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a5dc9ca8865ccbd7c535e0082b1813ed6">requires_execution_not_supported</a> = std::enable_if_t&lt;!<a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">is_supported</a>&lt; E &gt;(), int &gt;</td></tr>
<tr class="separator:a5dc9ca8865ccbd7c535e0082b1813ed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43af869a5c133642518967b6284525af"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a43af869a5c133642518967b6284525af"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a43af869a5c133642518967b6284525af">requires_farm</a> = typename std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#a5b5a7cc855d5952bb3cafe51a54ba458">is_farm</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:a43af869a5c133642518967b6284525af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14435182a5c6532b429e9e8f09e2da37"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a14435182a5c6532b429e9e8f09e2da37"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a14435182a5c6532b429e9e8f09e2da37">requires_filter</a> = typename std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#a2ae5f9f543d2cb628855f020afa0e262">is_filter</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:a14435182a5c6532b429e9e8f09e2da37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b2e3d6c560a1b30144d31c6dd7e568e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a9b2e3d6c560a1b30144d31c6dd7e568e"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a9b2e3d6c560a1b30144d31c6dd7e568e">requires_iteration</a> = typename std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#ab0349d7a5762f0f5dcfb512335a430d4">is_iteration</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:a9b2e3d6c560a1b30144d31c6dd7e568e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d2bc58fb1b6a69c51324da8ac2b3d35"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a3d2bc58fb1b6a69c51324da8ac2b3d35"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a3d2bc58fb1b6a69c51324da8ac2b3d35">requires_iterator</a> = std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#a6fd3fca903be45001490eff86db22e88">is_iterator</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:a3d2bc58fb1b6a69c51324da8ac2b3d35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53d88980f8164547717a94058db08f94"><td class="memTemplParams" colspan="2">template&lt;typename ... T&gt; </td></tr>
<tr class="memitem:a53d88980f8164547717a94058db08f94"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a53d88980f8164547717a94058db08f94">requires_iterators</a> = std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#a96b918acf997905a4a1978fcf219b6f0">are_iterators</a>&lt; T... &gt;, int &gt;</td></tr>
<tr class="separator:a53d88980f8164547717a94058db08f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4e9c4e7be72227c0ec55d198f18c51e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad4e9c4e7be72227c0ec55d198f18c51e"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ad4e9c4e7be72227c0ec55d198f18c51e">requires_queue</a> = std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#a4759187bf78c23c2a80900e5ae296bbc">is_queue</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:ad4e9c4e7be72227c0ec55d198f18c51e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefc4ab6149586d62bcb16b97bcefdd0a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aefc4ab6149586d62bcb16b97bcefdd0a"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#aefc4ab6149586d62bcb16b97bcefdd0a">requires_no_pattern</a> = std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#a1a507b16908e2fc55a42c444ce34602a">is_no_pattern</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:aefc4ab6149586d62bcb16b97bcefdd0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44f8144ac6fb7f6ef3e5d73369b01a0a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a44f8144ac6fb7f6ef3e5d73369b01a0a"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a44f8144ac6fb7f6ef3e5d73369b01a0a">requires_pattern</a> = std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#ab4dd11c6c8c471494aaa6ac02fbaa36d">is_pattern</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:a44f8144ac6fb7f6ef3e5d73369b01a0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64dd705d0f32b64d20dba8d5b9cebbbe"><td class="memTemplParams" colspan="2">template&lt;typename Input , typename Transformer &gt; </td></tr>
<tr class="memitem:a64dd705d0f32b64d20dba8d5b9cebbbe"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a64dd705d0f32b64d20dba8d5b9cebbbe">result_type</a> = typename std::result_of&lt; Transformer(Input)&gt;::type</td></tr>
<tr class="memdesc:a64dd705d0f32b64d20dba8d5b9cebbbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the return type of applying a function on a input type.  <a href="namespacegrppi.html#a64dd705d0f32b64d20dba8d5b9cebbbe">More...</a><br /></td></tr>
<tr class="separator:a64dd705d0f32b64d20dba8d5b9cebbbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c6e71cb617cee8d3216b1710891a349"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a1c6e71cb617cee8d3216b1710891a349"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a1c6e71cb617cee8d3216b1710891a349">requires_pipeline</a> = typename std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#af507e25fcb4d10f45c1d717d06c0bd79">is_pipeline</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:a1c6e71cb617cee8d3216b1710891a349"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c33363c4c49ab510560a0b880d52bfc"><td class="memTemplParams" colspan="2">template&lt;typename I , typename T &gt; </td></tr>
<tr class="memitem:a2c33363c4c49ab510560a0b880d52bfc"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a2c33363c4c49ab510560a0b880d52bfc">output_value_type</a> = typename <a class="el" href="structgrppi_1_1internal_1_1output__value__type.html">internal::output_value_type</a>&lt; I, T &gt;::type</td></tr>
<tr class="separator:a2c33363c4c49ab510560a0b880d52bfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f2ec5252b5fe6ed39a5a3c501b70732"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a4f2ec5252b5fe6ed39a5a3c501b70732"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a4f2ec5252b5fe6ed39a5a3c501b70732">requires_reduce</a> = std::enable_if_t&lt; <a class="el" href="namespacegrppi.html#abce2309ebb836d19490bfed222b35501">is_reduce</a>&lt; T &gt;, int &gt;</td></tr>
<tr class="separator:a4f2ec5252b5fe6ed39a5a3c501b70732"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:aa0514650a765d4853343655e7588662b"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#aa0514650a765d4853343655e7588662b">queue_mode</a> { <a class="el" href="namespacegrppi.html#aa0514650a765d4853343655e7588662bac6235a845472fa847daf07edbbf5fa18">lockfree</a> = true
, <a class="el" href="namespacegrppi.html#aa0514650a765d4853343655e7588662ba14343966a1d7dce7526e57cf2206d19d">blocking</a> = false
 }</td></tr>
<tr class="separator:aa0514650a765d4853343655e7588662b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a06dcb52b246f0cee715a28b123eeb1de"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a06dcb52b246f0cee715a28b123eeb1de"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">is_supported</a> ()</td></tr>
<tr class="memdesc:a06dcb52b246f0cee715a28b123eeb1de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy is supported in the current compilation.  <a href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">More...</a><br /></td></tr>
<tr class="separator:a06dcb52b246f0cee715a28b123eeb1de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdbf0f6b660c8b5b28e4704b2154b2d4"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:abdbf0f6b660c8b5b28e4704b2154b2d4"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#abdbf0f6b660c8b5b28e4704b2154b2d4">supports_map</a> ()</td></tr>
<tr class="memdesc:abdbf0f6b660c8b5b28e4704b2154b2d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map pattern.  <a href="namespacegrppi.html#abdbf0f6b660c8b5b28e4704b2154b2d4">More...</a><br /></td></tr>
<tr class="separator:abdbf0f6b660c8b5b28e4704b2154b2d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ccb1ca4c147c6d898e1b24237565a72"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a2ccb1ca4c147c6d898e1b24237565a72"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a2ccb1ca4c147c6d898e1b24237565a72">supports_reduce</a> ()</td></tr>
<tr class="memdesc:a2ccb1ca4c147c6d898e1b24237565a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the reduce pattern.  <a href="namespacegrppi.html#a2ccb1ca4c147c6d898e1b24237565a72">More...</a><br /></td></tr>
<tr class="separator:a2ccb1ca4c147c6d898e1b24237565a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e03091296a058be64c9e6f9a37ddd54"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a5e03091296a058be64c9e6f9a37ddd54"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a5e03091296a058be64c9e6f9a37ddd54">supports_map_reduce</a> ()</td></tr>
<tr class="memdesc:a5e03091296a058be64c9e6f9a37ddd54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map-reduce pattern.  <a href="namespacegrppi.html#a5e03091296a058be64c9e6f9a37ddd54">More...</a><br /></td></tr>
<tr class="separator:a5e03091296a058be64c9e6f9a37ddd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7d9666b7ffeb479da56692b81f02bff"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:aa7d9666b7ffeb479da56692b81f02bff"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#aa7d9666b7ffeb479da56692b81f02bff">supports_stencil</a> ()</td></tr>
<tr class="memdesc:aa7d9666b7ffeb479da56692b81f02bff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the stencil pattern.  <a href="namespacegrppi.html#aa7d9666b7ffeb479da56692b81f02bff">More...</a><br /></td></tr>
<tr class="separator:aa7d9666b7ffeb479da56692b81f02bff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca0f67eff627e1b617ef7b082f127820"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:aca0f67eff627e1b617ef7b082f127820"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#aca0f67eff627e1b617ef7b082f127820">supports_divide_conquer</a> ()</td></tr>
<tr class="memdesc:aca0f67eff627e1b617ef7b082f127820"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the divide-conquer pattern.  <a href="namespacegrppi.html#aca0f67eff627e1b617ef7b082f127820">More...</a><br /></td></tr>
<tr class="separator:aca0f67eff627e1b617ef7b082f127820"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab781a9381060f18e9e5155a496e71aee"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:ab781a9381060f18e9e5155a496e71aee"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ab781a9381060f18e9e5155a496e71aee">supports_pipeline</a> ()</td></tr>
<tr class="memdesc:ab781a9381060f18e9e5155a496e71aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the pipeline pattern.  <a href="namespacegrppi.html#ab781a9381060f18e9e5155a496e71aee">More...</a><br /></td></tr>
<tr class="separator:ab781a9381060f18e9e5155a496e71aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7cfe906e20c5a128ecd135706d8a749"><td class="memTemplParams" colspan="2">template&lt;typename F , typename ... Iterators, template&lt; typename ... &gt; class T&gt; </td></tr>
<tr class="memitem:af7cfe906e20c5a128ecd135706d8a749"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#af7cfe906e20c5a128ecd135706d8a749">apply_deref_increment</a> (F &amp;&amp;f, T&lt; Iterators... &gt; &amp;iterators)</td></tr>
<tr class="memdesc:af7cfe906e20c5a128ecd135706d8a749"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies a callable object to the values obtained from the iterators in a tuple-like object. This function takes callable object <code>f</code> and a tuple-like with iterators (e.g. the result of <code>make_tuple(it1, it2, it3)</code>)  <a href="namespacegrppi.html#af7cfe906e20c5a128ecd135706d8a749">More...</a><br /></td></tr>
<tr class="separator:af7cfe906e20c5a128ecd135706d8a749"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a512458b88dc7cff2cf36100c2e26f931"><td class="memTemplParams" colspan="2">template&lt;typename F , typename ... Iterators, template&lt; typename... &gt; class T&gt; </td></tr>
<tr class="memitem:a512458b88dc7cff2cf36100c2e26f931"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a512458b88dc7cff2cf36100c2e26f931">apply_increment</a> (F &amp;&amp;f, T&lt; Iterators... &gt; &amp;iterators)</td></tr>
<tr class="memdesc:a512458b88dc7cff2cf36100c2e26f931"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies a callable object to the iterators in a tuple like-object and the increments those iterators. This function takes callable object <code>f</code> and a tuple-like object with iterators (e.g. the result of <code>make_tuple(it1, it2, it3)</code>)  <a href="namespacegrppi.html#a512458b88dc7cff2cf36100c2e26f931">More...</a><br /></td></tr>
<tr class="separator:a512458b88dc7cff2cf36100c2e26f931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2cebb801cfe8aeed12ff8d90c3b9dd0"><td class="memTemplParams" colspan="2">template&lt;typename F , typename T &gt; </td></tr>
<tr class="memitem:ae2cebb801cfe8aeed12ff8d90c3b9dd0"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ae2cebb801cfe8aeed12ff8d90c3b9dd0">apply_iterators_indexed</a> (F &amp;&amp;f, T &amp;&amp;t, std::size_t i)</td></tr>
<tr class="memdesc:ae2cebb801cfe8aeed12ff8d90c3b9dd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies a callable object to the values obtained from the iterators in a tuple by indexing. This function takes callable object <code>f</code>, a tuple-like with iterators (e.g. the result of <code>make_tuple(it1, it2, it3)</code>) and an integral index <code>i</code>.  <a href="namespacegrppi.html#ae2cebb801cfe8aeed12ff8d90c3b9dd0">More...</a><br /></td></tr>
<tr class="separator:ae2cebb801cfe8aeed12ff8d90c3b9dd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab39b26ce38bba1d96af530ebcd807693"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ab39b26ce38bba1d96af530ebcd807693"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ab39b26ce38bba1d96af530ebcd807693">iterators_next</a> (T &amp;&amp;t, int n)</td></tr>
<tr class="memdesc:ab39b26ce38bba1d96af530ebcd807693"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes next n steps from a tuple of iterators.  <a href="namespacegrppi.html#ab39b26ce38bba1d96af530ebcd807693">More...</a><br /></td></tr>
<tr class="separator:ab39b26ce38bba1d96af530ebcd807693"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebb399413900573b062b5fa6959e81fa"><td class="memTemplParams" colspan="2">template&lt;typename ... InputIt&gt; </td></tr>
<tr class="memitem:aebb399413900573b062b5fa6959e81fa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#aebb399413900573b062b5fa6959e81fa">advance_iterators</a> (size_t delta, InputIt &amp;... in)</td></tr>
<tr class="separator:aebb399413900573b062b5fa6959e81fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c3941104532421e41db70942ea0d5bf"><td class="memTemplParams" colspan="2">template&lt;typename ... InputIt&gt; </td></tr>
<tr class="memitem:a4c3941104532421e41db70942ea0d5bf"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a4c3941104532421e41db70942ea0d5bf">advance_iterators</a> (InputIt &amp;... in)</td></tr>
<tr class="separator:a4c3941104532421e41db70942ea0d5bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90855ec112259c1d8d20d3aad8634bd0"><td class="memTemplParams" colspan="2">template&lt;typename ExecutionPolicy , typename Transformer &gt; </td></tr>
<tr class="memitem:ga90855ec112259c1d8d20d3aad8634bd0"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__context.html#ga90855ec112259c1d8d20d3aad8634bd0">run_with</a> (ExecutionPolicy &amp;ex, Transformer &amp;&amp;transform_op)</td></tr>
<tr class="memdesc:ga90855ec112259c1d8d20d3aad8634bd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a new <a class="el" href="md_context.html">Context</a> on a data stream that can be composed in other streaming patterns.  <a href="group__context.html#ga90855ec112259c1d8d20d3aad8634bd0">More...</a><br /></td></tr>
<tr class="separator:ga90855ec112259c1d8d20d3aad8634bd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2ebc10ffc0be3d2f8170e621dbdbca2"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename Input , typename Divider , typename Solver , typename Combiner &gt; </td></tr>
<tr class="memitem:gac2ebc10ffc0be3d2f8170e621dbdbca2"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__divide__conquer__pattern.html#gac2ebc10ffc0be3d2f8170e621dbdbca2">divide_conquer</a> (const Execution &amp;ex, Input &amp;&amp;input, Divider &amp;&amp;divider_op, Solver &amp;&amp;solver_op, Combiner &amp;&amp;combiner_op)</td></tr>
<tr class="memdesc:gac2ebc10ffc0be3d2f8170e621dbdbca2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_divide-conquer. \parapm Execution Execution type.  <a href="group__divide__conquer__pattern.html#gac2ebc10ffc0be3d2f8170e621dbdbca2">More...</a><br /></td></tr>
<tr class="separator:gac2ebc10ffc0be3d2f8170e621dbdbca2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36c876a01ce6ee113d9949d7d2601894"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename Input , typename Divider , typename Predicate , typename Solver , typename Combiner &gt; </td></tr>
<tr class="memitem:ga36c876a01ce6ee113d9949d7d2601894"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__divide__conquer__pattern.html#ga36c876a01ce6ee113d9949d7d2601894">divide_conquer</a> (const Execution &amp;ex, Input &amp;&amp;input, Divider &amp;&amp;divider_op, Predicate &amp;&amp;predicate_op, Solver &amp;&amp;solver_op, Combiner &amp;&amp;combiner_op)</td></tr>
<tr class="memdesc:ga36c876a01ce6ee113d9949d7d2601894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_divide-conquer. \parapm Execution Execution type.  <a href="group__divide__conquer__pattern.html#ga36c876a01ce6ee113d9949d7d2601894">More...</a><br /></td></tr>
<tr class="separator:ga36c876a01ce6ee113d9949d7d2601894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e9e39d7783a25c3e8e024c56df0daa0"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a6e9e39d7783a25c3e8e024c56df0daa0"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a6e9e39d7783a25c3e8e024c56df0daa0">is_supported&lt; dynamic_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a6e9e39d7783a25c3e8e024c56df0daa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy is supported in the current compilation.  <a href="namespacegrppi.html#a6e9e39d7783a25c3e8e024c56df0daa0">More...</a><br /></td></tr>
<tr class="separator:a6e9e39d7783a25c3e8e024c56df0daa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad934a34b2cdcf1d1539ba61c93486c5c"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ad934a34b2cdcf1d1539ba61c93486c5c"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ad934a34b2cdcf1d1539ba61c93486c5c">supports_map&lt; dynamic_execution &gt;</a> ()</td></tr>
<tr class="memdesc:ad934a34b2cdcf1d1539ba61c93486c5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map pattern.  <a href="namespacegrppi.html#ad934a34b2cdcf1d1539ba61c93486c5c">More...</a><br /></td></tr>
<tr class="separator:ad934a34b2cdcf1d1539ba61c93486c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c3ee02e5240fc51c3a5ceaad20fc9b3"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a4c3ee02e5240fc51c3a5ceaad20fc9b3"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a4c3ee02e5240fc51c3a5ceaad20fc9b3">supports_reduce&lt; dynamic_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a4c3ee02e5240fc51c3a5ceaad20fc9b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the reduce pattern.  <a href="namespacegrppi.html#a4c3ee02e5240fc51c3a5ceaad20fc9b3">More...</a><br /></td></tr>
<tr class="separator:a4c3ee02e5240fc51c3a5ceaad20fc9b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a8760f19a26c6460af01fcc06df5ab3"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a2a8760f19a26c6460af01fcc06df5ab3"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a2a8760f19a26c6460af01fcc06df5ab3">supports_map_reduce&lt; dynamic_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a2a8760f19a26c6460af01fcc06df5ab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map-reduce pattern.  <a href="namespacegrppi.html#a2a8760f19a26c6460af01fcc06df5ab3">More...</a><br /></td></tr>
<tr class="separator:a2a8760f19a26c6460af01fcc06df5ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02eb485a541e367b258ede91c67da116"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a02eb485a541e367b258ede91c67da116"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a02eb485a541e367b258ede91c67da116">supports_stencil&lt; dynamic_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a02eb485a541e367b258ede91c67da116"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the stencil pattern.  <a href="namespacegrppi.html#a02eb485a541e367b258ede91c67da116">More...</a><br /></td></tr>
<tr class="separator:a02eb485a541e367b258ede91c67da116"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65385d7a22134788e1b5ec5afa1b6d0d"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a65385d7a22134788e1b5ec5afa1b6d0d"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a65385d7a22134788e1b5ec5afa1b6d0d">supports_divide_conquer&lt; dynamic_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a65385d7a22134788e1b5ec5afa1b6d0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the divide/conquer pattern.  <a href="namespacegrppi.html#a65385d7a22134788e1b5ec5afa1b6d0d">More...</a><br /></td></tr>
<tr class="separator:a65385d7a22134788e1b5ec5afa1b6d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d57a931f85ed9004ca3ae8953bbab74"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a3d57a931f85ed9004ca3ae8953bbab74"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a3d57a931f85ed9004ca3ae8953bbab74">supports_pipeline&lt; dynamic_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a3d57a931f85ed9004ca3ae8953bbab74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the pipeline pattern.  <a href="namespacegrppi.html#a3d57a931f85ed9004ca3ae8953bbab74">More...</a><br /></td></tr>
<tr class="separator:a3d57a931f85ed9004ca3ae8953bbab74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e0164a8852fb54244cda390dc68d10f"><td class="memTemplParams" colspan="2">template&lt;typename Transformer &gt; </td></tr>
<tr class="memitem:ga2e0164a8852fb54244cda390dc68d10f"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__farm__pattern.html#ga2e0164a8852fb54244cda390dc68d10f">farm</a> (int ntasks, Transformer &amp;&amp;transform_op)</td></tr>
<tr class="memdesc:ga2e0164a8852fb54244cda390dc68d10f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_farm.html">Farm pattern</a> on a data stream that can be composed in other streaming patterns.  <a href="group__farm__pattern.html#ga2e0164a8852fb54244cda390dc68d10f">More...</a><br /></td></tr>
<tr class="separator:ga2e0164a8852fb54244cda390dc68d10f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e18becf9be01c381af8d08330e5d949"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a8e18becf9be01c381af8d08330e5d949"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a8e18becf9be01c381af8d08330e5d949">is_parallel_execution_ff</a> ()</td></tr>
<tr class="memdesc:a8e18becf9be01c381af8d08330e5d949"><td class="mdescLeft">&#160;</td><td class="mdescRight">Metafunction that determines if type E is <a class="el" href="structgrppi_1_1parallel__execution__ff.html">parallel_execution_ff</a> This metafunction evaluates to false if GRPPI_FF is disabled.  <a href="namespacegrppi.html#a8e18becf9be01c381af8d08330e5d949">More...</a><br /></td></tr>
<tr class="separator:a8e18becf9be01c381af8d08330e5d949"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf326a6fa32cef31ddb3379cfc042edfe"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename ... InputIterators, typename InputIt , typename OutputIt , typename Transformer , requires_iterators&lt; InputIterators... &gt;  = 0, requires_iterator&lt; InputIt &gt;  = 0, requires_iterator&lt; OutputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:gaf326a6fa32cef31ddb3379cfc042edfe"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__map__pattern.html#gaf326a6fa32cef31ddb3379cfc042edfe">map</a> (const Execution &amp;ex, std::tuple&lt; InputIterators... &gt; firsts, InputIt last, OutputIt first_out, Transformer transform_op)</td></tr>
<tr class="memdesc:gaf326a6fa32cef31ddb3379cfc042edfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_map.html">Map pattern</a> on a data sequence.  <a href="group__map__pattern.html#gaf326a6fa32cef31ddb3379cfc042edfe">More...</a><br /></td></tr>
<tr class="separator:gaf326a6fa32cef31ddb3379cfc042edfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga22acae5389fd578c430dc069c34f0486"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename ... InputIterators, typename OutputIt , typename Transformer , requires_iterators&lt; InputIterators... &gt;  = 0, requires_iterator&lt; OutputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga22acae5389fd578c430dc069c34f0486"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__map__pattern.html#ga22acae5389fd578c430dc069c34f0486">map</a> (const Execution &amp;ex, std::tuple&lt; InputIterators... &gt; firsts, std::size_t range, OutputIt first_out, Transformer transformer_op)</td></tr>
<tr class="memdesc:ga22acae5389fd578c430dc069c34f0486"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_map.html">Map pattern</a> on a data sequence.  <a href="group__map__pattern.html#ga22acae5389fd578c430dc069c34f0486">More...</a><br /></td></tr>
<tr class="separator:ga22acae5389fd578c430dc069c34f0486"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6207673d89d9c8442c188fcf6410c426"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename InputIt , typename OutputIt , typename Transformer , requires_iterator&lt; InputIt &gt;  = 0, requires_iterator&lt; OutputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga6207673d89d9c8442c188fcf6410c426"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__map__pattern.html#ga6207673d89d9c8442c188fcf6410c426">map</a> (const Execution &amp;ex, InputIt first, InputIt last, OutputIt first_out, Transformer transform_op)</td></tr>
<tr class="memdesc:ga6207673d89d9c8442c188fcf6410c426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_map.html">Map pattern</a> on a data sequence.  <a href="group__map__pattern.html#ga6207673d89d9c8442c188fcf6410c426">More...</a><br /></td></tr>
<tr class="separator:ga6207673d89d9c8442c188fcf6410c426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga07e35ab62946fde683b61c811e3ee2c4"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename InputIt , typename OutputIt , typename Transformer , typename ... OtherInputIts, requires_iterator&lt; InputIt &gt;  = 0, requires_iterator&lt; OutputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga07e35ab62946fde683b61c811e3ee2c4"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__map__pattern.html#ga07e35ab62946fde683b61c811e3ee2c4">map</a> (const Execution &amp;ex, InputIt first, InputIt last, OutputIt first_out, Transformer transform_op, OtherInputIts ... other_firsts)</td></tr>
<tr class="memdesc:ga07e35ab62946fde683b61c811e3ee2c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_map.html">Map pattern</a> on a data sequence.  <a href="group__map__pattern.html#ga07e35ab62946fde683b61c811e3ee2c4">More...</a><br /></td></tr>
<tr class="separator:ga07e35ab62946fde683b61c811e3ee2c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b61366b1688dc6d2d8dc6cbf785bf10"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename ... InputIterators, typename Identity , typename Transformer , typename Combiner , requires_iterators&lt; InputIterators... &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga1b61366b1688dc6d2d8dc6cbf785bf10"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mapreduce__pattern.html#ga1b61366b1688dc6d2d8dc6cbf785bf10">map_reduce</a> (const Execution &amp;ex, std::tuple&lt; InputIterators... &gt; firsts, std::size_t size, Identity &amp;&amp;identity, Transformer &amp;&amp;transform_op, Combiner &amp;&amp;combine_op)</td></tr>
<tr class="memdesc:ga1b61366b1688dc6d2d8dc6cbf785bf10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_map-reduce on a data sequence.  <a href="group__mapreduce__pattern.html#ga1b61366b1688dc6d2d8dc6cbf785bf10">More...</a><br /></td></tr>
<tr class="separator:ga1b61366b1688dc6d2d8dc6cbf785bf10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga482a7464f7fe043ee62e179db0ddcb07"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename ... InputIterators, typename InputIt , typename Identity , typename Transformer , typename Combiner , requires_iterators&lt; InputIterators... &gt;  = 0, requires_iterator&lt; InputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga482a7464f7fe043ee62e179db0ddcb07"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mapreduce__pattern.html#ga482a7464f7fe043ee62e179db0ddcb07">map_reduce</a> (const Execution &amp;ex, std::tuple&lt; InputIterators... &gt; firsts, InputIt last, Identity &amp;&amp;identity, Transformer &amp;&amp;transform_op, Combiner &amp;&amp;combine_op)</td></tr>
<tr class="memdesc:ga482a7464f7fe043ee62e179db0ddcb07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_map-reduce on a data sequence.  <a href="group__mapreduce__pattern.html#ga482a7464f7fe043ee62e179db0ddcb07">More...</a><br /></td></tr>
<tr class="separator:ga482a7464f7fe043ee62e179db0ddcb07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35ec6ba7101c5fb6e21173914e7952ba"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename InputIterator , typename Identity , typename Transformer , typename Combiner , requires_iterator&lt; InputIterator &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga35ec6ba7101c5fb6e21173914e7952ba"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mapreduce__pattern.html#ga35ec6ba7101c5fb6e21173914e7952ba">map_reduce</a> (const Execution &amp;ex, InputIterator first, InputIterator last, Identity &amp;&amp;identity, Transformer &amp;&amp;transform_op, Combiner &amp;&amp;combine_op)</td></tr>
<tr class="memdesc:ga35ec6ba7101c5fb6e21173914e7952ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_map-reduce on a data sequence.  <a href="group__mapreduce__pattern.html#ga35ec6ba7101c5fb6e21173914e7952ba">More...</a><br /></td></tr>
<tr class="separator:ga35ec6ba7101c5fb6e21173914e7952ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b2269da4d4f05ad635394e8e7762c7c"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename InputIterator , typename Identity , typename Transformer , typename Combiner , typename ... OtherInputIterators, requires_iterator&lt; InputIterator &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga4b2269da4d4f05ad635394e8e7762c7c"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mapreduce__pattern.html#ga4b2269da4d4f05ad635394e8e7762c7c">map_reduce</a> (const Execution &amp;ex, InputIterator first, InputIterator last, Identity &amp;&amp;identity, Transformer &amp;&amp;transform_op, Combiner &amp;&amp;combine_op, OtherInputIterators ... other_firsts)</td></tr>
<tr class="memdesc:ga4b2269da4d4f05ad635394e8e7762c7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_map-reduce on multiple data sequences.  <a href="group__mapreduce__pattern.html#ga4b2269da4d4f05ad635394e8e7762c7c">More...</a><br /></td></tr>
<tr class="separator:ga4b2269da4d4f05ad635394e8e7762c7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42fb74f9dece6623d7f01995d4adc5fe"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a42fb74f9dece6623d7f01995d4adc5fe"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a42fb74f9dece6623d7f01995d4adc5fe">is_parallel_execution_native</a> ()</td></tr>
<tr class="memdesc:a42fb74f9dece6623d7f01995d4adc5fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Metafunction that determines if type E is <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>.  <a href="namespacegrppi.html#a42fb74f9dece6623d7f01995d4adc5fe">More...</a><br /></td></tr>
<tr class="separator:a42fb74f9dece6623d7f01995d4adc5fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0641c069b2aebeee3b0ac9ddd6c97ea"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ac0641c069b2aebeee3b0ac9ddd6c97ea"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ac0641c069b2aebeee3b0ac9ddd6c97ea">is_supported&lt; parallel_execution_native &gt;</a> ()</td></tr>
<tr class="memdesc:ac0641c069b2aebeee3b0ac9ddd6c97ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy is supported in the current compilation.  <a href="namespacegrppi.html#ac0641c069b2aebeee3b0ac9ddd6c97ea">More...</a><br /></td></tr>
<tr class="separator:ac0641c069b2aebeee3b0ac9ddd6c97ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acef5be3b3e47ccebc79b3e51a40c38e7"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:acef5be3b3e47ccebc79b3e51a40c38e7"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#acef5be3b3e47ccebc79b3e51a40c38e7">supports_map&lt; parallel_execution_native &gt;</a> ()</td></tr>
<tr class="memdesc:acef5be3b3e47ccebc79b3e51a40c38e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map pattern.  <a href="namespacegrppi.html#acef5be3b3e47ccebc79b3e51a40c38e7">More...</a><br /></td></tr>
<tr class="separator:acef5be3b3e47ccebc79b3e51a40c38e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e0a4592d21e2809553b810d6d2704f1"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a0e0a4592d21e2809553b810d6d2704f1"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a0e0a4592d21e2809553b810d6d2704f1">supports_reduce&lt; parallel_execution_native &gt;</a> ()</td></tr>
<tr class="memdesc:a0e0a4592d21e2809553b810d6d2704f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the reduce pattern.  <a href="namespacegrppi.html#a0e0a4592d21e2809553b810d6d2704f1">More...</a><br /></td></tr>
<tr class="separator:a0e0a4592d21e2809553b810d6d2704f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a239c6c8ef8f854554308613a4ff88ed0"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a239c6c8ef8f854554308613a4ff88ed0"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a239c6c8ef8f854554308613a4ff88ed0">supports_map_reduce&lt; parallel_execution_native &gt;</a> ()</td></tr>
<tr class="memdesc:a239c6c8ef8f854554308613a4ff88ed0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map-reduce pattern.  <a href="namespacegrppi.html#a239c6c8ef8f854554308613a4ff88ed0">More...</a><br /></td></tr>
<tr class="separator:a239c6c8ef8f854554308613a4ff88ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71670a3d4221ca70a8e5e126ba5c01c9"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a71670a3d4221ca70a8e5e126ba5c01c9"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a71670a3d4221ca70a8e5e126ba5c01c9">supports_stencil&lt; parallel_execution_native &gt;</a> ()</td></tr>
<tr class="memdesc:a71670a3d4221ca70a8e5e126ba5c01c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the stencil pattern.  <a href="namespacegrppi.html#a71670a3d4221ca70a8e5e126ba5c01c9">More...</a><br /></td></tr>
<tr class="separator:a71670a3d4221ca70a8e5e126ba5c01c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b41b3b3e07dbd6dd7a3e587400da0aa"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a8b41b3b3e07dbd6dd7a3e587400da0aa"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a8b41b3b3e07dbd6dd7a3e587400da0aa">supports_divide_conquer&lt; parallel_execution_native &gt;</a> ()</td></tr>
<tr class="memdesc:a8b41b3b3e07dbd6dd7a3e587400da0aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the divide/conquer pattern.  <a href="namespacegrppi.html#a8b41b3b3e07dbd6dd7a3e587400da0aa">More...</a><br /></td></tr>
<tr class="separator:a8b41b3b3e07dbd6dd7a3e587400da0aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80bc4d209d73b130fc20e4afe91fa94b"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a80bc4d209d73b130fc20e4afe91fa94b"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a80bc4d209d73b130fc20e4afe91fa94b">supports_pipeline&lt; parallel_execution_native &gt;</a> ()</td></tr>
<tr class="memdesc:a80bc4d209d73b130fc20e4afe91fa94b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the pipeline pattern.  <a href="namespacegrppi.html#a80bc4d209d73b130fc20e4afe91fa94b">More...</a><br /></td></tr>
<tr class="separator:a80bc4d209d73b130fc20e4afe91fa94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a684f5603ca6c249c2014e73ef5939ea1"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a684f5603ca6c249c2014e73ef5939ea1"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a684f5603ca6c249c2014e73ef5939ea1">is_parallel_execution_omp</a> ()</td></tr>
<tr class="memdesc:a684f5603ca6c249c2014e73ef5939ea1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Metafunction that determines if type E is <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a>.  <a href="namespacegrppi.html#a684f5603ca6c249c2014e73ef5939ea1">More...</a><br /></td></tr>
<tr class="separator:a684f5603ca6c249c2014e73ef5939ea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f58c4870491adbdbe7c3fca83981f2a"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a3f58c4870491adbdbe7c3fca83981f2a"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a3f58c4870491adbdbe7c3fca83981f2a">is_supported&lt; parallel_execution_omp &gt;</a> ()</td></tr>
<tr class="memdesc:a3f58c4870491adbdbe7c3fca83981f2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy is supported in the current compilation.  <a href="namespacegrppi.html#a3f58c4870491adbdbe7c3fca83981f2a">More...</a><br /></td></tr>
<tr class="separator:a3f58c4870491adbdbe7c3fca83981f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7140c4f9145857677bbb9d69d4ee996"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ac7140c4f9145857677bbb9d69d4ee996"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ac7140c4f9145857677bbb9d69d4ee996">supports_map&lt; parallel_execution_omp &gt;</a> ()</td></tr>
<tr class="memdesc:ac7140c4f9145857677bbb9d69d4ee996"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map pattern.  <a href="namespacegrppi.html#ac7140c4f9145857677bbb9d69d4ee996">More...</a><br /></td></tr>
<tr class="separator:ac7140c4f9145857677bbb9d69d4ee996"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab14686b24bda97340325424c0808f8e5"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ab14686b24bda97340325424c0808f8e5"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ab14686b24bda97340325424c0808f8e5">supports_reduce&lt; parallel_execution_omp &gt;</a> ()</td></tr>
<tr class="memdesc:ab14686b24bda97340325424c0808f8e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the reduce pattern.  <a href="namespacegrppi.html#ab14686b24bda97340325424c0808f8e5">More...</a><br /></td></tr>
<tr class="separator:ab14686b24bda97340325424c0808f8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedf558dcb7098c68eb91a24ff8724303"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:aedf558dcb7098c68eb91a24ff8724303"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#aedf558dcb7098c68eb91a24ff8724303">supports_map_reduce&lt; parallel_execution_omp &gt;</a> ()</td></tr>
<tr class="memdesc:aedf558dcb7098c68eb91a24ff8724303"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map-reduce pattern.  <a href="namespacegrppi.html#aedf558dcb7098c68eb91a24ff8724303">More...</a><br /></td></tr>
<tr class="separator:aedf558dcb7098c68eb91a24ff8724303"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ee9bff9a2abf2d4212368695aa90513"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a5ee9bff9a2abf2d4212368695aa90513"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a5ee9bff9a2abf2d4212368695aa90513">supports_stencil&lt; parallel_execution_omp &gt;</a> ()</td></tr>
<tr class="memdesc:a5ee9bff9a2abf2d4212368695aa90513"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the stencil pattern.  <a href="namespacegrppi.html#a5ee9bff9a2abf2d4212368695aa90513">More...</a><br /></td></tr>
<tr class="separator:a5ee9bff9a2abf2d4212368695aa90513"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acab52f9fd1dc880a72d484e0b1d25fc0"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:acab52f9fd1dc880a72d484e0b1d25fc0"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#acab52f9fd1dc880a72d484e0b1d25fc0">supports_divide_conquer&lt; parallel_execution_omp &gt;</a> ()</td></tr>
<tr class="memdesc:acab52f9fd1dc880a72d484e0b1d25fc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the divide/conquer pattern.  <a href="namespacegrppi.html#acab52f9fd1dc880a72d484e0b1d25fc0">More...</a><br /></td></tr>
<tr class="separator:acab52f9fd1dc880a72d484e0b1d25fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2527c1d272fe48e7c19fbd7b7509caea"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a2527c1d272fe48e7c19fbd7b7509caea"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a2527c1d272fe48e7c19fbd7b7509caea">supports_pipeline&lt; parallel_execution_omp &gt;</a> ()</td></tr>
<tr class="memdesc:a2527c1d272fe48e7c19fbd7b7509caea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the pipeline pattern.  <a href="namespacegrppi.html#a2527c1d272fe48e7c19fbd7b7509caea">More...</a><br /></td></tr>
<tr class="separator:a2527c1d272fe48e7c19fbd7b7509caea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3942c499118a951617b95c4ee10a502"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename Generator , typename ... Transformers, requires_execution_supported&lt; std::decay_t&lt; Execution &gt;&gt;  = 0&gt; </td></tr>
<tr class="memitem:gaf3942c499118a951617b95c4ee10a502"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__pipeline__pattern.html#gaf3942c499118a951617b95c4ee10a502">pipeline</a> (const Execution &amp;ex, Generator &amp;&amp;generate_op, Transformers &amp;&amp;... transform_ops)</td></tr>
<tr class="memdesc:gaf3942c499118a951617b95c4ee10a502"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_pipeline.html">Pipeline pattern</a> on a data stream.  <a href="group__pipeline__pattern.html#gaf3942c499118a951617b95c4ee10a502">More...</a><br /></td></tr>
<tr class="separator:gaf3942c499118a951617b95c4ee10a502"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9486a11d1bca1302bfc4af9a62e4c2eb"><td class="memTemplParams" colspan="2">template&lt;typename Transformer , typename ... Transformers, requires_execution_not_supported&lt; std::decay_t&lt; Transformer &gt;&gt;  = 0&gt; </td></tr>
<tr class="memitem:ga9486a11d1bca1302bfc4af9a62e4c2eb"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__pipeline__pattern.html#ga9486a11d1bca1302bfc4af9a62e4c2eb">pipeline</a> (Transformer &amp;&amp;transform_op, Transformers &amp;&amp;... transform_ops)</td></tr>
<tr class="memdesc:ga9486a11d1bca1302bfc4af9a62e4c2eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a composable <a class="el" href="md_pipeline.html">Pipeline pattern</a> representation that can be composed in other streaming patterns.  <a href="group__pipeline__pattern.html#ga9486a11d1bca1302bfc4af9a62e4c2eb">More...</a><br /></td></tr>
<tr class="separator:ga9486a11d1bca1302bfc4af9a62e4c2eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1666d960a2d79c46e209c7d64f0cdc7f"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename InputIt , typename Result , typename Combiner , requires_iterator&lt; InputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga1666d960a2d79c46e209c7d64f0cdc7f"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__reduce__pattern.html#ga1666d960a2d79c46e209c7d64f0cdc7f">reduce</a> (const Execution &amp;ex, InputIt first, std::size_t size, Result &amp;&amp;identity, Combiner &amp;&amp;combine_op)</td></tr>
<tr class="memdesc:ga1666d960a2d79c46e209c7d64f0cdc7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_reduce.html">Reduce pattern</a> with identity value on a data sequence with sequential execution.  <a href="group__reduce__pattern.html#ga1666d960a2d79c46e209c7d64f0cdc7f">More...</a><br /></td></tr>
<tr class="separator:ga1666d960a2d79c46e209c7d64f0cdc7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga062c46b9cb6362994ec9f24f15efa820"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename InputIt , typename Result , typename Combiner , requires_iterator&lt; InputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga062c46b9cb6362994ec9f24f15efa820"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__reduce__pattern.html#ga062c46b9cb6362994ec9f24f15efa820">reduce</a> (const Execution &amp;ex, InputIt first, InputIt last, Result &amp;&amp;identity, Combiner &amp;&amp;combine_op)</td></tr>
<tr class="memdesc:ga062c46b9cb6362994ec9f24f15efa820"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_reduce.html">Reduce pattern</a> with identity value on a data sequence with sequential execution.  <a href="group__reduce__pattern.html#ga062c46b9cb6362994ec9f24f15efa820">More...</a><br /></td></tr>
<tr class="separator:ga062c46b9cb6362994ec9f24f15efa820"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e049fdd071afc3726a0e9d866dfdc31"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:a3e049fdd071afc3726a0e9d866dfdc31"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a3e049fdd071afc3726a0e9d866dfdc31">is_sequential_execution</a> ()</td></tr>
<tr class="memdesc:a3e049fdd071afc3726a0e9d866dfdc31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if a type is a sequential execution policy.  <a href="namespacegrppi.html#a3e049fdd071afc3726a0e9d866dfdc31">More...</a><br /></td></tr>
<tr class="separator:a3e049fdd071afc3726a0e9d866dfdc31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa979cd5b2e2efbd7a7d752121b29ed0"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:afa979cd5b2e2efbd7a7d752121b29ed0"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#afa979cd5b2e2efbd7a7d752121b29ed0">is_supported&lt; sequential_execution &gt;</a> ()</td></tr>
<tr class="memdesc:afa979cd5b2e2efbd7a7d752121b29ed0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy is supported in the current compilation.  <a href="namespacegrppi.html#afa979cd5b2e2efbd7a7d752121b29ed0">More...</a><br /></td></tr>
<tr class="separator:afa979cd5b2e2efbd7a7d752121b29ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5001ee262d384279e56a99a179ca7db"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ae5001ee262d384279e56a99a179ca7db"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ae5001ee262d384279e56a99a179ca7db">supports_map&lt; sequential_execution &gt;</a> ()</td></tr>
<tr class="memdesc:ae5001ee262d384279e56a99a179ca7db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map pattern.  <a href="namespacegrppi.html#ae5001ee262d384279e56a99a179ca7db">More...</a><br /></td></tr>
<tr class="separator:ae5001ee262d384279e56a99a179ca7db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b4d7ec0c9cbf8b1c64c1a1e6606b439"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a3b4d7ec0c9cbf8b1c64c1a1e6606b439"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a3b4d7ec0c9cbf8b1c64c1a1e6606b439">supports_reduce&lt; sequential_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a3b4d7ec0c9cbf8b1c64c1a1e6606b439"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the reduce pattern.  <a href="namespacegrppi.html#a3b4d7ec0c9cbf8b1c64c1a1e6606b439">More...</a><br /></td></tr>
<tr class="separator:a3b4d7ec0c9cbf8b1c64c1a1e6606b439"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cc41dbe0586b2fd66af7a52c093a333"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a4cc41dbe0586b2fd66af7a52c093a333"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a4cc41dbe0586b2fd66af7a52c093a333">supports_map_reduce&lt; sequential_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a4cc41dbe0586b2fd66af7a52c093a333"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map-reduce pattern.  <a href="namespacegrppi.html#a4cc41dbe0586b2fd66af7a52c093a333">More...</a><br /></td></tr>
<tr class="separator:a4cc41dbe0586b2fd66af7a52c093a333"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35d14d03f13f51d3353fecacd28123e0"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a35d14d03f13f51d3353fecacd28123e0"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a35d14d03f13f51d3353fecacd28123e0">supports_stencil&lt; sequential_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a35d14d03f13f51d3353fecacd28123e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the stencil pattern.  <a href="namespacegrppi.html#a35d14d03f13f51d3353fecacd28123e0">More...</a><br /></td></tr>
<tr class="separator:a35d14d03f13f51d3353fecacd28123e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6488e80888d2460b10c56c7e63418d0"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ad6488e80888d2460b10c56c7e63418d0"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ad6488e80888d2460b10c56c7e63418d0">supports_divide_conquer&lt; sequential_execution &gt;</a> ()</td></tr>
<tr class="memdesc:ad6488e80888d2460b10c56c7e63418d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the divide/conquer pattern.  <a href="namespacegrppi.html#ad6488e80888d2460b10c56c7e63418d0">More...</a><br /></td></tr>
<tr class="separator:ad6488e80888d2460b10c56c7e63418d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17813be3ec5c6ead0746f9bc717a9bd3"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a17813be3ec5c6ead0746f9bc717a9bd3"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a17813be3ec5c6ead0746f9bc717a9bd3">supports_pipeline&lt; sequential_execution &gt;</a> ()</td></tr>
<tr class="memdesc:a17813be3ec5c6ead0746f9bc717a9bd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the pipeline pattern.  <a href="namespacegrppi.html#a17813be3ec5c6ead0746f9bc717a9bd3">More...</a><br /></td></tr>
<tr class="separator:a17813be3ec5c6ead0746f9bc717a9bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8e95af475249d066e96b2376f0dc59e"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename ... InputIterators, typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterators&lt; InputIterators... &gt;  = 0, requires_iterator&lt; OutputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:gad8e95af475249d066e96b2376f0dc59e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__stencil__pattern.html#gad8e95af475249d066e96b2376f0dc59e">stencil</a> (const Execution &amp;ex, std::tuple&lt; InputIterators... &gt; firsts, std::size_t size, OutputIt out, StencilTransformer &amp;&amp;transform_op, Neighbourhood &amp;&amp;neighbour_op)</td></tr>
<tr class="memdesc:gad8e95af475249d066e96b2376f0dc59e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_stencil.html">Stencil pattern</a> on a data sequence with sequential execution.  <a href="group__stencil__pattern.html#gad8e95af475249d066e96b2376f0dc59e">More...</a><br /></td></tr>
<tr class="separator:gad8e95af475249d066e96b2376f0dc59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadbb0797384a9b1320cd55fae732da4a7"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename ... InputIterators, typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterators&lt; InputIterators... &gt;  = 0, requires_iterator&lt; InputIt &gt;  = 0, requires_iterator&lt; OutputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:gadbb0797384a9b1320cd55fae732da4a7"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__stencil__pattern.html#gadbb0797384a9b1320cd55fae732da4a7">stencil</a> (const Execution &amp;ex, std::tuple&lt; InputIterators... &gt; firsts, InputIt last, OutputIt out, StencilTransformer &amp;&amp;transform_op, Neighbourhood &amp;&amp;neighbour_op)</td></tr>
<tr class="memdesc:gadbb0797384a9b1320cd55fae732da4a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_stencil.html">Stencil pattern</a> on a data sequence with sequential execution.  <a href="group__stencil__pattern.html#gadbb0797384a9b1320cd55fae732da4a7">More...</a><br /></td></tr>
<tr class="separator:gadbb0797384a9b1320cd55fae732da4a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafdf7c38707651f76685eaeed065c2e2c"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterator&lt; InputIt &gt;  = 0, requires_iterator&lt; OutputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:gafdf7c38707651f76685eaeed065c2e2c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__stencil__pattern.html#gafdf7c38707651f76685eaeed065c2e2c">stencil</a> (const Execution &amp;ex, InputIt first, InputIt last, OutputIt out, StencilTransformer &amp;&amp;transform_op, Neighbourhood &amp;&amp;neighbour_op)</td></tr>
<tr class="memdesc:gafdf7c38707651f76685eaeed065c2e2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_stencil.html">Stencil pattern</a> on a data sequence with sequential execution.  <a href="group__stencil__pattern.html#gafdf7c38707651f76685eaeed065c2e2c">More...</a><br /></td></tr>
<tr class="separator:gafdf7c38707651f76685eaeed065c2e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45f6f80fb550e49892d84516af52aa0c"><td class="memTemplParams" colspan="2">template&lt;typename Execution , typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , typename ... OtherInputIts, requires_iterator&lt; InputIt &gt;  = 0, requires_iterator&lt; OutputIt &gt;  = 0&gt; </td></tr>
<tr class="memitem:ga45f6f80fb550e49892d84516af52aa0c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__stencil__pattern.html#ga45f6f80fb550e49892d84516af52aa0c">stencil</a> (const Execution &amp;ex, InputIt first, InputIt last, OutputIt out, StencilTransformer &amp;&amp;transform_op, Neighbourhood &amp;&amp;neighbour_op, OtherInputIts ... other_firsts)</td></tr>
<tr class="memdesc:ga45f6f80fb550e49892d84516af52aa0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke <a class="el" href="md_stencil.html">Stencil pattern</a> on multiple data sequences with sequential execution.  <a href="group__stencil__pattern.html#ga45f6f80fb550e49892d84516af52aa0c">More...</a><br /></td></tr>
<tr class="separator:ga45f6f80fb550e49892d84516af52aa0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc3773f21c14b2272c5ff404b4e9f8c2"><td class="memTemplParams" colspan="2">template&lt;typename Predicate &gt; </td></tr>
<tr class="memitem:gabc3773f21c14b2272c5ff404b4e9f8c2"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__filter__pattern.html#gabc3773f21c14b2272c5ff404b4e9f8c2">keep</a> (Predicate &amp;&amp;predicate_op)</td></tr>
<tr class="memdesc:gabc3773f21c14b2272c5ff404b4e9f8c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_stream-filter on a data stream that can be composed in other streaming patterns. This function keeps in the stream only those items that satisfy the predicate.  <a href="group__filter__pattern.html#gabc3773f21c14b2272c5ff404b4e9f8c2">More...</a><br /></td></tr>
<tr class="separator:gabc3773f21c14b2272c5ff404b4e9f8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8bcbdf6de8a446a291162ee4e7f7944"><td class="memTemplParams" colspan="2">template&lt;typename Predicate &gt; </td></tr>
<tr class="memitem:gab8bcbdf6de8a446a291162ee4e7f7944"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__filter__pattern.html#gab8bcbdf6de8a446a291162ee4e7f7944">discard</a> (Predicate &amp;&amp;predicate_op)</td></tr>
<tr class="memdesc:gab8bcbdf6de8a446a291162ee4e7f7944"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_stream-filter on a data stream that can be composed in other streaming patterns. This function discards from the stream those items that satisfy the predicate.  <a href="group__filter__pattern.html#gab8bcbdf6de8a446a291162ee4e7f7944">More...</a><br /></td></tr>
<tr class="separator:gab8bcbdf6de8a446a291162ee4e7f7944"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7854f699ca4ad6933101813c245e605b"><td class="memTemplParams" colspan="2">template&lt;typename Transformer , typename Predicate &gt; </td></tr>
<tr class="memitem:a7854f699ca4ad6933101813c245e605b"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a7854f699ca4ad6933101813c245e605b">repeat_until</a> (Transformer &amp;&amp;transform_op, Predicate &amp;&amp;predicate_op)</td></tr>
<tr class="separator:a7854f699ca4ad6933101813c245e605b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02a66c9c439f25b0539539e4a2f9439e"><td class="memTemplParams" colspan="2">template&lt;typename Identity , typename Combiner &gt; </td></tr>
<tr class="memitem:ga02a66c9c439f25b0539539e4a2f9439e"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__stream__reduce__pattern.html#ga02a66c9c439f25b0539539e4a2f9439e">reduce</a> (int window_size, int offset, Identity identity, Combiner &amp;&amp;combine_op)</td></tr>
<tr class="memdesc:ga02a66c9c439f25b0539539e4a2f9439e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke md_stream-reduce on a stream that can be composed in other streaming patterns.  <a href="group__stream__reduce__pattern.html#ga02a66c9c439f25b0539539e4a2f9439e">More...</a><br /></td></tr>
<tr class="separator:ga02a66c9c439f25b0539539e4a2f9439e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb9c59d0d8356f37f2a09fafd6e70726"><td class="memTemplParams" colspan="2">template&lt;typename E &gt; </td></tr>
<tr class="memitem:afb9c59d0d8356f37f2a09fafd6e70726"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#afb9c59d0d8356f37f2a09fafd6e70726">is_parallel_execution_tbb</a> ()</td></tr>
<tr class="memdesc:afb9c59d0d8356f37f2a09fafd6e70726"><td class="mdescLeft">&#160;</td><td class="mdescRight">Metafunction that determines if type E is <a class="el" href="classgrppi_1_1parallel__execution__tbb.html" title="TBB parallel execution policy.">parallel_execution_tbb</a>.  <a href="namespacegrppi.html#afb9c59d0d8356f37f2a09fafd6e70726">More...</a><br /></td></tr>
<tr class="separator:afb9c59d0d8356f37f2a09fafd6e70726"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a3a77a7ec35389029d4f5e35d03b5cf"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a9a3a77a7ec35389029d4f5e35d03b5cf"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a9a3a77a7ec35389029d4f5e35d03b5cf">is_supported&lt; parallel_execution_tbb &gt;</a> ()</td></tr>
<tr class="memdesc:a9a3a77a7ec35389029d4f5e35d03b5cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy is supported in the current compilation.  <a href="namespacegrppi.html#a9a3a77a7ec35389029d4f5e35d03b5cf">More...</a><br /></td></tr>
<tr class="separator:a9a3a77a7ec35389029d4f5e35d03b5cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae98c8a81da78b6914d9162ae771cd180"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ae98c8a81da78b6914d9162ae771cd180"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ae98c8a81da78b6914d9162ae771cd180">supports_map&lt; parallel_execution_tbb &gt;</a> ()</td></tr>
<tr class="memdesc:ae98c8a81da78b6914d9162ae771cd180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map pattern.  <a href="namespacegrppi.html#ae98c8a81da78b6914d9162ae771cd180">More...</a><br /></td></tr>
<tr class="separator:ae98c8a81da78b6914d9162ae771cd180"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc1d261888fc60233b1289900778005a"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:adc1d261888fc60233b1289900778005a"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#adc1d261888fc60233b1289900778005a">supports_reduce&lt; parallel_execution_tbb &gt;</a> ()</td></tr>
<tr class="memdesc:adc1d261888fc60233b1289900778005a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the reduce pattern.  <a href="namespacegrppi.html#adc1d261888fc60233b1289900778005a">More...</a><br /></td></tr>
<tr class="separator:adc1d261888fc60233b1289900778005a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6276d4cd16e1e275b617aecdc8a098e4"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a6276d4cd16e1e275b617aecdc8a098e4"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a6276d4cd16e1e275b617aecdc8a098e4">supports_map_reduce&lt; parallel_execution_tbb &gt;</a> ()</td></tr>
<tr class="memdesc:a6276d4cd16e1e275b617aecdc8a098e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the map-reduce pattern.  <a href="namespacegrppi.html#a6276d4cd16e1e275b617aecdc8a098e4">More...</a><br /></td></tr>
<tr class="separator:a6276d4cd16e1e275b617aecdc8a098e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2dc49cfedd90c66ef95daef9624f2ac"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:af2dc49cfedd90c66ef95daef9624f2ac"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#af2dc49cfedd90c66ef95daef9624f2ac">supports_stencil&lt; parallel_execution_tbb &gt;</a> ()</td></tr>
<tr class="memdesc:af2dc49cfedd90c66ef95daef9624f2ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the stencil pattern.  <a href="namespacegrppi.html#af2dc49cfedd90c66ef95daef9624f2ac">More...</a><br /></td></tr>
<tr class="separator:af2dc49cfedd90c66ef95daef9624f2ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad41d712f7093e084a84e1ea7904ddda9"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ad41d712f7093e084a84e1ea7904ddda9"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ad41d712f7093e084a84e1ea7904ddda9">supports_divide_conquer&lt; parallel_execution_tbb &gt;</a> ()</td></tr>
<tr class="memdesc:ad41d712f7093e084a84e1ea7904ddda9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the divide/conquer pattern.  <a href="namespacegrppi.html#ad41d712f7093e084a84e1ea7904ddda9">More...</a><br /></td></tr>
<tr class="separator:ad41d712f7093e084a84e1ea7904ddda9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a520e1d8937fb6e0afb6e6189bd382835"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a520e1d8937fb6e0afb6e6189bd382835"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a520e1d8937fb6e0afb6e6189bd382835">supports_pipeline&lt; parallel_execution_tbb &gt;</a> ()</td></tr>
<tr class="memdesc:a520e1d8937fb6e0afb6e6189bd382835"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if an execution policy supports the pipeline pattern.  <a href="namespacegrppi.html#a520e1d8937fb6e0afb6e6189bd382835">More...</a><br /></td></tr>
<tr class="separator:a520e1d8937fb6e0afb6e6189bd382835"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a564594a7740535f7c4c037099dd7a461"><td class="memTemplParams" colspan="2">template&lt;typename F , typename I &gt; </td></tr>
<tr class="memitem:a564594a7740535f7c4c037099dd7a461"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a564594a7740535f7c4c037099dd7a461">is_consumer</a> = <a class="el" href="namespacegrppi_1_1internal.html#a36a790dfd0f9122127ce74df378090e1">internal::has_void_return</a>&lt;F,I&gt;()</td></tr>
<tr class="separator:a564594a7740535f7c4c037099dd7a461"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28c0d1f51bb6e4da8f9bdea17cce7a5b"><td class="memTemplParams" colspan="2">template&lt;typename G &gt; </td></tr>
<tr class="memitem:a28c0d1f51bb6e4da8f9bdea17cce7a5b"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a28c0d1f51bb6e4da8f9bdea17cce7a5b">is_generator</a></td></tr>
<tr class="separator:a28c0d1f51bb6e4da8f9bdea17cce7a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3e99e81ed819576b5ee62e71144b77c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad3e99e81ed819576b5ee62e71144b77c"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ad3e99e81ed819576b5ee62e71144b77c">is_context</a> = <a class="el" href="structgrppi_1_1internal_1_1is__context.html">internal::is_context</a>&lt;std::decay_t&lt;T&gt;&gt;()</td></tr>
<tr class="separator:ad3e99e81ed819576b5ee62e71144b77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b5a7cc855d5952bb3cafe51a54ba458"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a5b5a7cc855d5952bb3cafe51a54ba458"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a5b5a7cc855d5952bb3cafe51a54ba458">is_farm</a> = <a class="el" href="structgrppi_1_1internal_1_1is__farm.html">internal::is_farm</a>&lt;std::decay_t&lt;T&gt;&gt;()</td></tr>
<tr class="separator:a5b5a7cc855d5952bb3cafe51a54ba458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ae5f9f543d2cb628855f020afa0e262"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a2ae5f9f543d2cb628855f020afa0e262"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a2ae5f9f543d2cb628855f020afa0e262">is_filter</a> = <a class="el" href="structgrppi_1_1internal_1_1is__filter.html">internal::is_filter</a>&lt;std::decay_t&lt;T&gt;&gt;()</td></tr>
<tr class="separator:a2ae5f9f543d2cb628855f020afa0e262"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0349d7a5762f0f5dcfb512335a430d4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ab0349d7a5762f0f5dcfb512335a430d4"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ab0349d7a5762f0f5dcfb512335a430d4">is_iteration</a> = <a class="el" href="structgrppi_1_1internal_1_1is__iteration.html">internal::is_iteration</a>&lt;std::decay_t&lt;T&gt;&gt;()</td></tr>
<tr class="separator:ab0349d7a5762f0f5dcfb512335a430d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fd3fca903be45001490eff86db22e88"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a6fd3fca903be45001490eff86db22e88"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a6fd3fca903be45001490eff86db22e88">is_iterator</a> = <a class="el" href="structgrppi_1_1internal_1_1is__iterator.html">internal::is_iterator</a>&lt;T&gt;::value</td></tr>
<tr class="separator:a6fd3fca903be45001490eff86db22e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96b918acf997905a4a1978fcf219b6f0"><td class="memTemplParams" colspan="2">template&lt;typename ... T&gt; </td></tr>
<tr class="memitem:a96b918acf997905a4a1978fcf219b6f0"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a96b918acf997905a4a1978fcf219b6f0">are_iterators</a> = <a class="el" href="structgrppi_1_1internal_1_1are__iterators.html">internal::are_iterators</a>&lt;T...&gt;::value</td></tr>
<tr class="separator:a96b918acf997905a4a1978fcf219b6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4759187bf78c23c2a80900e5ae296bbc"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a4759187bf78c23c2a80900e5ae296bbc"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a4759187bf78c23c2a80900e5ae296bbc">is_queue</a> = <a class="el" href="structgrppi_1_1internal_1_1is__queue.html">internal::is_queue</a>&lt;T&gt;()</td></tr>
<tr class="separator:a4759187bf78c23c2a80900e5ae296bbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a507b16908e2fc55a42c444ce34602a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a1a507b16908e2fc55a42c444ce34602a"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#a1a507b16908e2fc55a42c444ce34602a">is_no_pattern</a></td></tr>
<tr class="separator:a1a507b16908e2fc55a42c444ce34602a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4dd11c6c8c471494aaa6ac02fbaa36d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ab4dd11c6c8c471494aaa6ac02fbaa36d"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#ab4dd11c6c8c471494aaa6ac02fbaa36d">is_pattern</a> = !<a class="el" href="namespacegrppi.html#a1a507b16908e2fc55a42c444ce34602a">is_no_pattern</a>&lt;T&gt;</td></tr>
<tr class="separator:ab4dd11c6c8c471494aaa6ac02fbaa36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af507e25fcb4d10f45c1d717d06c0bd79"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:af507e25fcb4d10f45c1d717d06c0bd79"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#af507e25fcb4d10f45c1d717d06c0bd79">is_pipeline</a> = <a class="el" href="structgrppi_1_1internal_1_1is__pipeline.html">internal::is_pipeline</a>&lt;std::decay_t&lt;T&gt;&gt;()</td></tr>
<tr class="separator:af507e25fcb4d10f45c1d717d06c0bd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abce2309ebb836d19490bfed222b35501"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:abce2309ebb836d19490bfed222b35501"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacegrppi.html#abce2309ebb836d19490bfed222b35501">is_reduce</a> = <a class="el" href="structgrppi_1_1internal_1_1is__reduce.html">internal::is_reduce</a>&lt;std::decay_t&lt;T&gt;&gt;()</td></tr>
<tr class="separator:abce2309ebb836d19490bfed222b35501"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a2c33363c4c49ab510560a0b880d52bfc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c33363c4c49ab510560a0b880d52bfc">&#9670;&nbsp;</a></span>output_value_type</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename I , typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a2c33363c4c49ab510560a0b880d52bfc">grppi::output_value_type</a> = typedef typename <a class="el" href="structgrppi_1_1internal_1_1output__value__type.html">internal::output_value_type</a>&lt;I,T&gt;::type</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aa953140c899760e8975a238af6f3443d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa953140c899760e8975a238af6f3443d">&#9670;&nbsp;</a></span>requires_arguments</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#aa953140c899760e8975a238af6f3443d">grppi::requires_arguments</a> = typedef typename std::enable_if_t&lt;<a class="el" href="namespacegrppi_1_1internal.html#a830d6dbae17c03ceb5baed4b1155dec7">internal::has_arguments</a>&lt;F&gt;(), int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a0d8c8cf548425f816962f354b33a760e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d8c8cf548425f816962f354b33a760e">&#9670;&nbsp;</a></span>requires_consumer</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F , typename I &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a0d8c8cf548425f816962f354b33a760e">grppi::requires_consumer</a> = typedef typename std::enable_if_t&lt;<a class="el" href="namespacegrppi_1_1internal.html#a36a790dfd0f9122127ce74df378090e1">internal::has_void_return</a>&lt;F(I)&gt;(), int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ad4b58959f8008485515060fe1a37fb21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4b58959f8008485515060fe1a37fb21">&#9670;&nbsp;</a></span>requires_context</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#ad4b58959f8008485515060fe1a37fb21">grppi::requires_context</a> = typedef typename std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#ad3e99e81ed819576b5ee62e71144b77c">is_context</a>&lt;T&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a5dc9ca8865ccbd7c535e0082b1813ed6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5dc9ca8865ccbd7c535e0082b1813ed6">&#9670;&nbsp;</a></span>requires_execution_not_supported</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a5dc9ca8865ccbd7c535e0082b1813ed6">grppi::requires_execution_not_supported</a> = typedef std::enable_if_t&lt;!<a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">is_supported</a>&lt;E&gt;(), int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a740be032c8440fb7780bdbb6a975db78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a740be032c8440fb7780bdbb6a975db78">&#9670;&nbsp;</a></span>requires_execution_supported</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a740be032c8440fb7780bdbb6a975db78">grppi::requires_execution_supported</a> = typedef std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">is_supported</a>&lt;E&gt;(), int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a43af869a5c133642518967b6284525af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43af869a5c133642518967b6284525af">&#9670;&nbsp;</a></span>requires_farm</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a43af869a5c133642518967b6284525af">grppi::requires_farm</a> = typedef typename std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#a5b5a7cc855d5952bb3cafe51a54ba458">is_farm</a>&lt;T&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a14435182a5c6532b429e9e8f09e2da37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14435182a5c6532b429e9e8f09e2da37">&#9670;&nbsp;</a></span>requires_filter</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a14435182a5c6532b429e9e8f09e2da37">grppi::requires_filter</a> = typedef typename std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#a2ae5f9f543d2cb628855f020afa0e262">is_filter</a>&lt;T&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a1e6cb40f6fea92dfcab82349b9f1f202"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e6cb40f6fea92dfcab82349b9f1f202">&#9670;&nbsp;</a></span>requires_generator</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename G &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a1e6cb40f6fea92dfcab82349b9f1f202">grppi::requires_generator</a> = typedef typename std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#a28c0d1f51bb6e4da8f9bdea17cce7a5b">is_generator</a>&lt;G&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a9b2e3d6c560a1b30144d31c6dd7e568e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b2e3d6c560a1b30144d31c6dd7e568e">&#9670;&nbsp;</a></span>requires_iteration</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a9b2e3d6c560a1b30144d31c6dd7e568e">grppi::requires_iteration</a> = typedef typename std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#ab0349d7a5762f0f5dcfb512335a430d4">is_iteration</a>&lt;T&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a3d2bc58fb1b6a69c51324da8ac2b3d35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d2bc58fb1b6a69c51324da8ac2b3d35">&#9670;&nbsp;</a></span>requires_iterator</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a3d2bc58fb1b6a69c51324da8ac2b3d35">grppi::requires_iterator</a> = typedef std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#a6fd3fca903be45001490eff86db22e88">is_iterator</a>&lt;T&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a53d88980f8164547717a94058db08f94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53d88980f8164547717a94058db08f94">&#9670;&nbsp;</a></span>requires_iterators</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ... T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a53d88980f8164547717a94058db08f94">grppi::requires_iterators</a> = typedef std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#a96b918acf997905a4a1978fcf219b6f0">are_iterators</a>&lt;T...&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aefc4ab6149586d62bcb16b97bcefdd0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefc4ab6149586d62bcb16b97bcefdd0a">&#9670;&nbsp;</a></span>requires_no_pattern</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#aefc4ab6149586d62bcb16b97bcefdd0a">grppi::requires_no_pattern</a> = typedef std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#a1a507b16908e2fc55a42c444ce34602a">is_no_pattern</a>&lt;T&gt;,int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a44f8144ac6fb7f6ef3e5d73369b01a0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44f8144ac6fb7f6ef3e5d73369b01a0a">&#9670;&nbsp;</a></span>requires_pattern</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a44f8144ac6fb7f6ef3e5d73369b01a0a">grppi::requires_pattern</a> = typedef std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#ab4dd11c6c8c471494aaa6ac02fbaa36d">is_pattern</a>&lt;T&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a1c6e71cb617cee8d3216b1710891a349"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c6e71cb617cee8d3216b1710891a349">&#9670;&nbsp;</a></span>requires_pipeline</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a1c6e71cb617cee8d3216b1710891a349">grppi::requires_pipeline</a> = typedef typename std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#af507e25fcb4d10f45c1d717d06c0bd79">is_pipeline</a>&lt;T&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ad4e9c4e7be72227c0ec55d198f18c51e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4e9c4e7be72227c0ec55d198f18c51e">&#9670;&nbsp;</a></span>requires_queue</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#ad4e9c4e7be72227c0ec55d198f18c51e">grppi::requires_queue</a> = typedef std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#a4759187bf78c23c2a80900e5ae296bbc">is_queue</a>&lt;T&gt;, int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a4f2ec5252b5fe6ed39a5a3c501b70732"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f2ec5252b5fe6ed39a5a3c501b70732">&#9670;&nbsp;</a></span>requires_reduce</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a4f2ec5252b5fe6ed39a5a3c501b70732">grppi::requires_reduce</a> = typedef std::enable_if_t&lt;<a class="el" href="namespacegrppi.html#abce2309ebb836d19490bfed222b35501">is_reduce</a>&lt;T&gt;,int&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a64dd705d0f32b64d20dba8d5b9cebbbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64dd705d0f32b64d20dba8d5b9cebbbe">&#9670;&nbsp;</a></span>result_type</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Input , typename Transformer &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacegrppi.html#a64dd705d0f32b64d20dba8d5b9cebbbe">grppi::result_type</a> = typedef typename std::result_of&lt;Transformer(Input)&gt;::type</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines the return type of applying a function on a input type. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="aa0514650a765d4853343655e7588662b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0514650a765d4853343655e7588662b">&#9670;&nbsp;</a></span>queue_mode</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="namespacegrppi.html#aa0514650a765d4853343655e7588662b">grppi::queue_mode</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa0514650a765d4853343655e7588662bac6235a845472fa847daf07edbbf5fa18"></a>lockfree&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aa0514650a765d4853343655e7588662ba14343966a1d7dce7526e57cf2206d19d"></a>blocking&#160;</td><td class="fielddoc"></td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a4c3941104532421e41db70942ea0d5bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c3941104532421e41db70942ea0d5bf">&#9670;&nbsp;</a></span>advance_iterators() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ... InputIt&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void grppi::advance_iterators </td>
          <td>(</td>
          <td class="paramtype">InputIt &amp;...&#160;</td>
          <td class="paramname"><em>in</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Advance a pack of iterators by one unit. Every iterator in the parameter pack in is increased 1 step. </p>

</div>
</div>
<a id="aebb399413900573b062b5fa6959e81fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebb399413900573b062b5fa6959e81fa">&#9670;&nbsp;</a></span>advance_iterators() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ... InputIt&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void grppi::advance_iterators </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>delta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">InputIt &amp;...&#160;</td>
          <td class="paramname"><em>in</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Advance a pack of iterators by a delta. Every iterator in the parameter pack in is increased n steps. </p>

</div>
</div>
<a id="af7cfe906e20c5a128ecd135706d8a749"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7cfe906e20c5a128ecd135706d8a749">&#9670;&nbsp;</a></span>apply_deref_increment()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F , typename ... Iterators, template&lt; typename ... &gt; class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">decltype(auto) grppi::apply_deref_increment </td>
          <td>(</td>
          <td class="paramtype">F &amp;&amp;&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&lt; Iterators... &gt; &amp;&#160;</td>
          <td class="paramname"><em>iterators</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Applies a callable object to the values obtained from the iterators in a tuple-like object. This function takes callable object <code>f</code> and a tuple-like with iterators (e.g. the result of <code>make_tuple(it1, it2, it3)</code>) </p>
<p>and performs the action</p>
<div class="fragment"><div class="line">f(*it1++, *it2++, *it3++);</div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">F</td><td>Type of the callable object. </td></tr>
    <tr><td class="paramname">Iterators</td><td>Pack of iterator types. </td></tr>
    <tr><td class="paramname">T</td><td>Tuple-like type containing the iterators </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>Callable object to be invoked. </td></tr>
    <tr><td class="paramname">iterators</td><td>Iterators to be used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section post"><dt>Postcondition</dt><dd>All iterators in t have been incremented </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>The result of callable invocation. </dd></dl>

</div>
</div>
<a id="a512458b88dc7cff2cf36100c2e26f931"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a512458b88dc7cff2cf36100c2e26f931">&#9670;&nbsp;</a></span>apply_increment()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F , typename ... Iterators, template&lt; typename... &gt; class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">decltype(auto) grppi::apply_increment </td>
          <td>(</td>
          <td class="paramtype">F &amp;&amp;&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&lt; Iterators... &gt; &amp;&#160;</td>
          <td class="paramname"><em>iterators</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Applies a callable object to the iterators in a tuple like-object and the increments those iterators. This function takes callable object <code>f</code> and a tuple-like object with iterators (e.g. the result of <code>make_tuple(it1, it2, it3)</code>) </p>
<p>and performs the action</p>
<div class="fragment"><div class="line">f(it1++, it2++, it3++);</div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Type</td><td>of the callable object. </td></tr>
    <tr><td class="paramname">Iterators</td><td>Pack of iterator types. </td></tr>
    <tr><td class="paramname">T</td><td>Tuple-like type containing the iterators </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>Callable object to be invoked. </td></tr>
    <tr><td class="paramname">iterators</td><td>Iterators to be used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section post"><dt>Postcondition</dt><dd>All iterators in t have been incremented </dd></dl>

</div>
</div>
<a id="ae2cebb801cfe8aeed12ff8d90c3b9dd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2cebb801cfe8aeed12ff8d90c3b9dd0">&#9670;&nbsp;</a></span>apply_iterators_indexed()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F , typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">decltype(auto) grppi::apply_iterators_indexed </td>
          <td>(</td>
          <td class="paramtype">F &amp;&amp;&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>i</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Applies a callable object to the values obtained from the iterators in a tuple by indexing. This function takes callable object <code>f</code>, a tuple-like with iterators (e.g. the result of <code>make_tuple(it1, it2, it3)</code>) and an integral index <code>i</code>. </p>
<p>and performs the action</p>
<div class="fragment"><div class="line">f(it1[i], it2[i], it3[i]);</div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">F</td><td>Type of the callable object. </td></tr>
    <tr><td class="paramname">T</td><td>Tuple type containing a tuple of iterators </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>Callable object to be invoked. </td></tr>
    <tr><td class="paramname">t</td><td>Tuple of iterators. </td></tr>
    <tr><td class="paramname">i</td><td>Integral index to apply to each iterator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section post"><dt>Postcondition</dt><dd>All iterators in t have been incremented </dd>
<dd>
<code>f</code> has been invoked with the contents of the iterator in the tuple. </dd></dl>

</div>
</div>
<a id="a8e18becf9be01c381af8d08330e5d949"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e18becf9be01c381af8d08330e5d949">&#9670;&nbsp;</a></span>is_parallel_execution_ff()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_parallel_execution_ff </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Metafunction that determines if type E is <a class="el" href="structgrppi_1_1parallel__execution__ff.html">parallel_execution_ff</a> This metafunction evaluates to false if GRPPI_FF is disabled. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Execution</td><td>policy type. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a42fb74f9dece6623d7f01995d4adc5fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42fb74f9dece6623d7f01995d4adc5fe">&#9670;&nbsp;</a></span>is_parallel_execution_native()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_parallel_execution_native </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Metafunction that determines if type E is <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Execution</td><td>policy type. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a684f5603ca6c249c2014e73ef5939ea1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a684f5603ca6c249c2014e73ef5939ea1">&#9670;&nbsp;</a></span>is_parallel_execution_omp()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_parallel_execution_omp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Metafunction that determines if type E is <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a>. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Execution</td><td>policy type. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afb9c59d0d8356f37f2a09fafd6e70726"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb9c59d0d8356f37f2a09fafd6e70726">&#9670;&nbsp;</a></span>is_parallel_execution_tbb()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_parallel_execution_tbb </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Metafunction that determines if type E is <a class="el" href="classgrppi_1_1parallel__execution__tbb.html" title="TBB parallel execution policy.">parallel_execution_tbb</a>. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Execution</td><td>policy type. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3e049fdd071afc3726a0e9d866dfdc31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e049fdd071afc3726a0e9d866dfdc31">&#9670;&nbsp;</a></span>is_sequential_execution()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_sequential_execution </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine if a type is a sequential execution policy. </p>

</div>
</div>
<a id="a06dcb52b246f0cee715a28b123eeb1de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06dcb52b246f0cee715a28b123eeb1de">&#9670;&nbsp;</a></span>is_supported()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_supported </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy is supported in the current compilation. </p>
<dl class="section note"><dt>Note</dt><dd>This must be specialized by every execution policy. </dd></dl>

</div>
</div>
<a id="a6e9e39d7783a25c3e8e024c56df0daa0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e9e39d7783a25c3e8e024c56df0daa0">&#9670;&nbsp;</a></span>is_supported&lt; dynamic_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">grppi::is_supported</a>&lt; <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy is supported in the current compilation. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a>. </dd></dl>

</div>
</div>
<a id="ac0641c069b2aebeee3b0ac9ddd6c97ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0641c069b2aebeee3b0ac9ddd6c97ea">&#9670;&nbsp;</a></span>is_supported&lt; parallel_execution_native &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">grppi::is_supported</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__native.html">parallel_execution_native</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy is supported in the current compilation. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>. </dd></dl>

</div>
</div>
<a id="a3f58c4870491adbdbe7c3fca83981f2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f58c4870491adbdbe7c3fca83981f2a">&#9670;&nbsp;</a></span>is_supported&lt; parallel_execution_omp &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">grppi::is_supported</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__omp.html">parallel_execution_omp</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy is supported in the current compilation. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_OMP is enabled. </dd></dl>

</div>
</div>
<a id="a9a3a77a7ec35389029d4f5e35d03b5cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a3a77a7ec35389029d4f5e35d03b5cf">&#9670;&nbsp;</a></span>is_supported&lt; parallel_execution_tbb &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">grppi::is_supported</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__tbb.html">parallel_execution_tbb</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy is supported in the current compilation. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_TBB is enabled. </dd></dl>

</div>
</div>
<a id="afa979cd5b2e2efbd7a7d752121b29ed0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa979cd5b2e2efbd7a7d752121b29ed0">&#9670;&nbsp;</a></span>is_supported&lt; sequential_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a06dcb52b246f0cee715a28b123eeb1de">grppi::is_supported</a>&lt; <a class="el" href="classgrppi_1_1sequential__execution.html">sequential_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy is supported in the current compilation. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1sequential__execution.html" title="Sequential execution policy.">sequential_execution</a>. </dd></dl>

</div>
</div>
<a id="ab39b26ce38bba1d96af530ebcd807693"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab39b26ce38bba1d96af530ebcd807693">&#9670;&nbsp;</a></span>iterators_next()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">auto grppi::iterators_next </td>
          <td>(</td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes next n steps from a tuple of iterators. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Tuple type containing a tuple of iterators. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>Tuple of iterators. </td></tr>
    <tr><td class="paramname">n</td><td>Number of steps to advance. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This function is the equivalent to std::next for a tuple of iterators. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A new tuple with the result iterators. </dd></dl>

</div>
</div>
<a id="a7854f699ca4ad6933101813c245e605b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7854f699ca4ad6933101813c245e605b">&#9670;&nbsp;</a></span>repeat_until()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Transformer , typename Predicate &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">auto grppi::repeat_until </td>
          <td>(</td>
          <td class="paramtype">Transformer &amp;&amp;&#160;</td>
          <td class="paramname"><em>transform_op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Predicate &amp;&amp;&#160;</td>
          <td class="paramname"><em>predicate_op</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aca0f67eff627e1b617ef7b082f127820"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca0f67eff627e1b617ef7b082f127820">&#9670;&nbsp;</a></span>supports_divide_conquer()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::supports_divide_conquer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the divide-conquer pattern. </p>
<dl class="section note"><dt>Note</dt><dd>This must be specialized by every execution policy supporting the pattern. </dd></dl>

</div>
</div>
<a id="a65385d7a22134788e1b5ec5afa1b6d0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65385d7a22134788e1b5ec5afa1b6d0d">&#9670;&nbsp;</a></span>supports_divide_conquer&lt; dynamic_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aca0f67eff627e1b617ef7b082f127820">grppi::supports_divide_conquer</a>&lt; <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the divide/conquer pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a>. </dd></dl>

</div>
</div>
<a id="a8b41b3b3e07dbd6dd7a3e587400da0aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b41b3b3e07dbd6dd7a3e587400da0aa">&#9670;&nbsp;</a></span>supports_divide_conquer&lt; parallel_execution_native &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aca0f67eff627e1b617ef7b082f127820">grppi::supports_divide_conquer</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__native.html">parallel_execution_native</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the divide/conquer pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>. </dd></dl>

</div>
</div>
<a id="acab52f9fd1dc880a72d484e0b1d25fc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acab52f9fd1dc880a72d484e0b1d25fc0">&#9670;&nbsp;</a></span>supports_divide_conquer&lt; parallel_execution_omp &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aca0f67eff627e1b617ef7b082f127820">grppi::supports_divide_conquer</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__omp.html">parallel_execution_omp</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the divide/conquer pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_OMP is enabled. </dd></dl>

</div>
</div>
<a id="ad41d712f7093e084a84e1ea7904ddda9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad41d712f7093e084a84e1ea7904ddda9">&#9670;&nbsp;</a></span>supports_divide_conquer&lt; parallel_execution_tbb &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aca0f67eff627e1b617ef7b082f127820">grppi::supports_divide_conquer</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__tbb.html">parallel_execution_tbb</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the divide/conquer pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_TBB is enabled. </dd></dl>

</div>
</div>
<a id="ad6488e80888d2460b10c56c7e63418d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6488e80888d2460b10c56c7e63418d0">&#9670;&nbsp;</a></span>supports_divide_conquer&lt; sequential_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aca0f67eff627e1b617ef7b082f127820">grppi::supports_divide_conquer</a>&lt; <a class="el" href="classgrppi_1_1sequential__execution.html">sequential_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the divide/conquer pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1sequential__execution.html" title="Sequential execution policy.">sequential_execution</a>. </dd></dl>

</div>
</div>
<a id="abdbf0f6b660c8b5b28e4704b2154b2d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdbf0f6b660c8b5b28e4704b2154b2d4">&#9670;&nbsp;</a></span>supports_map()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::supports_map </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map pattern. </p>
<dl class="section note"><dt>Note</dt><dd>This must be specialized by every execution policy supporting the pattern. </dd></dl>

</div>
</div>
<a id="ad934a34b2cdcf1d1539ba61c93486c5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad934a34b2cdcf1d1539ba61c93486c5c">&#9670;&nbsp;</a></span>supports_map&lt; dynamic_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#abdbf0f6b660c8b5b28e4704b2154b2d4">grppi::supports_map</a>&lt; <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a>. </dd></dl>

</div>
</div>
<a id="acef5be3b3e47ccebc79b3e51a40c38e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acef5be3b3e47ccebc79b3e51a40c38e7">&#9670;&nbsp;</a></span>supports_map&lt; parallel_execution_native &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#abdbf0f6b660c8b5b28e4704b2154b2d4">grppi::supports_map</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__native.html">parallel_execution_native</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>. </dd></dl>

</div>
</div>
<a id="ac7140c4f9145857677bbb9d69d4ee996"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7140c4f9145857677bbb9d69d4ee996">&#9670;&nbsp;</a></span>supports_map&lt; parallel_execution_omp &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#abdbf0f6b660c8b5b28e4704b2154b2d4">grppi::supports_map</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__omp.html">parallel_execution_omp</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_OMP is enabled. </dd></dl>

</div>
</div>
<a id="ae98c8a81da78b6914d9162ae771cd180"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae98c8a81da78b6914d9162ae771cd180">&#9670;&nbsp;</a></span>supports_map&lt; parallel_execution_tbb &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#abdbf0f6b660c8b5b28e4704b2154b2d4">grppi::supports_map</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__tbb.html">parallel_execution_tbb</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_TBB is enabled. </dd></dl>

</div>
</div>
<a id="ae5001ee262d384279e56a99a179ca7db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5001ee262d384279e56a99a179ca7db">&#9670;&nbsp;</a></span>supports_map&lt; sequential_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#abdbf0f6b660c8b5b28e4704b2154b2d4">grppi::supports_map</a>&lt; <a class="el" href="classgrppi_1_1sequential__execution.html">sequential_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1sequential__execution.html" title="Sequential execution policy.">sequential_execution</a>. </dd></dl>

</div>
</div>
<a id="a5e03091296a058be64c9e6f9a37ddd54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e03091296a058be64c9e6f9a37ddd54">&#9670;&nbsp;</a></span>supports_map_reduce()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::supports_map_reduce </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map-reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>This must be specialized by every execution policy supporting the pattern. </dd></dl>

</div>
</div>
<a id="a2a8760f19a26c6460af01fcc06df5ab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a8760f19a26c6460af01fcc06df5ab3">&#9670;&nbsp;</a></span>supports_map_reduce&lt; dynamic_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a5e03091296a058be64c9e6f9a37ddd54">grppi::supports_map_reduce</a>&lt; <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map-reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a>. </dd></dl>

</div>
</div>
<a id="a239c6c8ef8f854554308613a4ff88ed0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a239c6c8ef8f854554308613a4ff88ed0">&#9670;&nbsp;</a></span>supports_map_reduce&lt; parallel_execution_native &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a5e03091296a058be64c9e6f9a37ddd54">grppi::supports_map_reduce</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__native.html">parallel_execution_native</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map-reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>. </dd></dl>

</div>
</div>
<a id="aedf558dcb7098c68eb91a24ff8724303"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aedf558dcb7098c68eb91a24ff8724303">&#9670;&nbsp;</a></span>supports_map_reduce&lt; parallel_execution_omp &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a5e03091296a058be64c9e6f9a37ddd54">grppi::supports_map_reduce</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__omp.html">parallel_execution_omp</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map-reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_OMP is enabled. </dd></dl>

</div>
</div>
<a id="a6276d4cd16e1e275b617aecdc8a098e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6276d4cd16e1e275b617aecdc8a098e4">&#9670;&nbsp;</a></span>supports_map_reduce&lt; parallel_execution_tbb &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a5e03091296a058be64c9e6f9a37ddd54">grppi::supports_map_reduce</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__tbb.html">parallel_execution_tbb</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map-reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_TBB is enabled. </dd></dl>

</div>
</div>
<a id="a4cc41dbe0586b2fd66af7a52c093a333"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cc41dbe0586b2fd66af7a52c093a333">&#9670;&nbsp;</a></span>supports_map_reduce&lt; sequential_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a5e03091296a058be64c9e6f9a37ddd54">grppi::supports_map_reduce</a>&lt; <a class="el" href="classgrppi_1_1sequential__execution.html">sequential_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the map-reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1sequential__execution.html" title="Sequential execution policy.">sequential_execution</a>. </dd></dl>

</div>
</div>
<a id="ab781a9381060f18e9e5155a496e71aee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab781a9381060f18e9e5155a496e71aee">&#9670;&nbsp;</a></span>supports_pipeline()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::supports_pipeline </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the pipeline pattern. </p>
<dl class="section note"><dt>Note</dt><dd>This must be specialized by every execution policy supporting the pattern. </dd></dl>

</div>
</div>
<a id="a3d57a931f85ed9004ca3ae8953bbab74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d57a931f85ed9004ca3ae8953bbab74">&#9670;&nbsp;</a></span>supports_pipeline&lt; dynamic_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#ab781a9381060f18e9e5155a496e71aee">grppi::supports_pipeline</a>&lt; <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the pipeline pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a>. </dd></dl>

</div>
</div>
<a id="a80bc4d209d73b130fc20e4afe91fa94b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80bc4d209d73b130fc20e4afe91fa94b">&#9670;&nbsp;</a></span>supports_pipeline&lt; parallel_execution_native &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#ab781a9381060f18e9e5155a496e71aee">grppi::supports_pipeline</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__native.html">parallel_execution_native</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the pipeline pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>. </dd></dl>

</div>
</div>
<a id="a2527c1d272fe48e7c19fbd7b7509caea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2527c1d272fe48e7c19fbd7b7509caea">&#9670;&nbsp;</a></span>supports_pipeline&lt; parallel_execution_omp &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#ab781a9381060f18e9e5155a496e71aee">grppi::supports_pipeline</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__omp.html">parallel_execution_omp</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the pipeline pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_OMP is enabled. </dd></dl>

</div>
</div>
<a id="a520e1d8937fb6e0afb6e6189bd382835"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a520e1d8937fb6e0afb6e6189bd382835">&#9670;&nbsp;</a></span>supports_pipeline&lt; parallel_execution_tbb &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#ab781a9381060f18e9e5155a496e71aee">grppi::supports_pipeline</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__tbb.html">parallel_execution_tbb</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the pipeline pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_TBB is enabled. </dd></dl>

</div>
</div>
<a id="a17813be3ec5c6ead0746f9bc717a9bd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17813be3ec5c6ead0746f9bc717a9bd3">&#9670;&nbsp;</a></span>supports_pipeline&lt; sequential_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#ab781a9381060f18e9e5155a496e71aee">grppi::supports_pipeline</a>&lt; <a class="el" href="classgrppi_1_1sequential__execution.html">sequential_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the pipeline pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1sequential__execution.html" title="Sequential execution policy.">sequential_execution</a>. </dd></dl>

</div>
</div>
<a id="a2ccb1ca4c147c6d898e1b24237565a72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ccb1ca4c147c6d898e1b24237565a72">&#9670;&nbsp;</a></span>supports_reduce()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::supports_reduce </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>This must be specialized by every execution policy supporting the pattern. </dd></dl>

</div>
</div>
<a id="a4c3ee02e5240fc51c3a5ceaad20fc9b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c3ee02e5240fc51c3a5ceaad20fc9b3">&#9670;&nbsp;</a></span>supports_reduce&lt; dynamic_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a2ccb1ca4c147c6d898e1b24237565a72">grppi::supports_reduce</a>&lt; <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a>. </dd></dl>

</div>
</div>
<a id="a0e0a4592d21e2809553b810d6d2704f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e0a4592d21e2809553b810d6d2704f1">&#9670;&nbsp;</a></span>supports_reduce&lt; parallel_execution_native &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a2ccb1ca4c147c6d898e1b24237565a72">grppi::supports_reduce</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__native.html">parallel_execution_native</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>. </dd></dl>

</div>
</div>
<a id="ab14686b24bda97340325424c0808f8e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab14686b24bda97340325424c0808f8e5">&#9670;&nbsp;</a></span>supports_reduce&lt; parallel_execution_omp &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a2ccb1ca4c147c6d898e1b24237565a72">grppi::supports_reduce</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__omp.html">parallel_execution_omp</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_OMP is enabled. </dd></dl>

</div>
</div>
<a id="adc1d261888fc60233b1289900778005a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc1d261888fc60233b1289900778005a">&#9670;&nbsp;</a></span>supports_reduce&lt; parallel_execution_tbb &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a2ccb1ca4c147c6d898e1b24237565a72">grppi::supports_reduce</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__tbb.html">parallel_execution_tbb</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_TBB is enabled. </dd></dl>

</div>
</div>
<a id="a3b4d7ec0c9cbf8b1c64c1a1e6606b439"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b4d7ec0c9cbf8b1c64c1a1e6606b439">&#9670;&nbsp;</a></span>supports_reduce&lt; sequential_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#a2ccb1ca4c147c6d898e1b24237565a72">grppi::supports_reduce</a>&lt; <a class="el" href="classgrppi_1_1sequential__execution.html">sequential_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the reduce pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1sequential__execution.html" title="Sequential execution policy.">sequential_execution</a>. </dd></dl>

</div>
</div>
<a id="aa7d9666b7ffeb479da56692b81f02bff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7d9666b7ffeb479da56692b81f02bff">&#9670;&nbsp;</a></span>supports_stencil()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename E &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::supports_stencil </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the stencil pattern. </p>
<dl class="section note"><dt>Note</dt><dd>This must be specialized by every execution policy supporting the pattern. </dd></dl>

</div>
</div>
<a id="a02eb485a541e367b258ede91c67da116"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02eb485a541e367b258ede91c67da116">&#9670;&nbsp;</a></span>supports_stencil&lt; dynamic_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aa7d9666b7ffeb479da56692b81f02bff">grppi::supports_stencil</a>&lt; <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the stencil pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1dynamic__execution.html">dynamic_execution</a>. </dd></dl>

</div>
</div>
<a id="a71670a3d4221ca70a8e5e126ba5c01c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71670a3d4221ca70a8e5e126ba5c01c9">&#9670;&nbsp;</a></span>supports_stencil&lt; parallel_execution_native &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aa7d9666b7ffeb479da56692b81f02bff">grppi::supports_stencil</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__native.html">parallel_execution_native</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the stencil pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__native.html" title="Native parallel execution policy. This policy uses ISO C++ threads as implementation building block a...">parallel_execution_native</a>. </dd></dl>

</div>
</div>
<a id="a5ee9bff9a2abf2d4212368695aa90513"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ee9bff9a2abf2d4212368695aa90513">&#9670;&nbsp;</a></span>supports_stencil&lt; parallel_execution_omp &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aa7d9666b7ffeb479da56692b81f02bff">grppi::supports_stencil</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__omp.html">parallel_execution_omp</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the stencil pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_OMP is enabled. </dd></dl>

</div>
</div>
<a id="af2dc49cfedd90c66ef95daef9624f2ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2dc49cfedd90c66ef95daef9624f2ac">&#9670;&nbsp;</a></span>supports_stencil&lt; parallel_execution_tbb &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aa7d9666b7ffeb479da56692b81f02bff">grppi::supports_stencil</a>&lt; <a class="el" href="classgrppi_1_1parallel__execution__tbb.html">parallel_execution_tbb</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the stencil pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1parallel__execution__omp.html" title="OpenMP parallel execution policy.">parallel_execution_omp</a> when GRPPI_TBB is enabled. </dd></dl>

</div>
</div>
<a id="a35d14d03f13f51d3353fecacd28123e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35d14d03f13f51d3353fecacd28123e0">&#9670;&nbsp;</a></span>supports_stencil&lt; sequential_execution &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="namespacegrppi.html#aa7d9666b7ffeb479da56692b81f02bff">grppi::supports_stencil</a>&lt; <a class="el" href="classgrppi_1_1sequential__execution.html">sequential_execution</a> &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if an execution policy supports the stencil pattern. </p>
<dl class="section note"><dt>Note</dt><dd>Specialization for <a class="el" href="classgrppi_1_1sequential__execution.html" title="Sequential execution policy.">sequential_execution</a>. </dd></dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a96b918acf997905a4a1978fcf219b6f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96b918acf997905a4a1978fcf219b6f0">&#9670;&nbsp;</a></span>are_iterators</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ... T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::are_iterators = <a class="el" href="structgrppi_1_1internal_1_1are__iterators.html">internal::are_iterators</a>&lt;T...&gt;::value</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a564594a7740535f7c4c037099dd7a461"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a564594a7740535f7c4c037099dd7a461">&#9670;&nbsp;</a></span>is_consumer</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F , typename I &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_consumer = <a class="el" href="namespacegrppi_1_1internal.html#a36a790dfd0f9122127ce74df378090e1">internal::has_void_return</a>&lt;F,I&gt;()</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad3e99e81ed819576b5ee62e71144b77c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3e99e81ed819576b5ee62e71144b77c">&#9670;&nbsp;</a></span>is_context</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_context = <a class="el" href="structgrppi_1_1internal_1_1is__context.html">internal::is_context</a>&lt;std::decay_t&lt;T&gt;&gt;()</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5b5a7cc855d5952bb3cafe51a54ba458"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b5a7cc855d5952bb3cafe51a54ba458">&#9670;&nbsp;</a></span>is_farm</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_farm = <a class="el" href="structgrppi_1_1internal_1_1is__farm.html">internal::is_farm</a>&lt;std::decay_t&lt;T&gt;&gt;()</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a2ae5f9f543d2cb628855f020afa0e262"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ae5f9f543d2cb628855f020afa0e262">&#9670;&nbsp;</a></span>is_filter</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_filter = <a class="el" href="structgrppi_1_1internal_1_1is__filter.html">internal::is_filter</a>&lt;std::decay_t&lt;T&gt;&gt;()</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a28c0d1f51bb6e4da8f9bdea17cce7a5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28c0d1f51bb6e4da8f9bdea17cce7a5b">&#9670;&nbsp;</a></span>is_generator</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename G &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_generator</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= </div>
<div class="line">  !internal::has_void_return&lt;G&gt;()</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab0349d7a5762f0f5dcfb512335a430d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0349d7a5762f0f5dcfb512335a430d4">&#9670;&nbsp;</a></span>is_iteration</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_iteration = <a class="el" href="structgrppi_1_1internal_1_1is__iteration.html">internal::is_iteration</a>&lt;std::decay_t&lt;T&gt;&gt;()</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a6fd3fca903be45001490eff86db22e88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fd3fca903be45001490eff86db22e88">&#9670;&nbsp;</a></span>is_iterator</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_iterator = <a class="el" href="structgrppi_1_1internal_1_1is__iterator.html">internal::is_iterator</a>&lt;T&gt;::value</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a1a507b16908e2fc55a42c444ce34602a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a507b16908e2fc55a42c444ce34602a">&#9670;&nbsp;</a></span>is_no_pattern</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_no_pattern</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line">  !is_farm&lt;T&gt; &amp;&amp; </div>
<div class="line">  !is_filter&lt;T&gt; &amp;&amp; </div>
<div class="line">  !is_pipeline&lt;T&gt; &amp;&amp;</div>
<div class="line">  !is_reduce&lt;T&gt; &amp;&amp;</div>
<div class="line">  !is_iteration&lt;T&gt;&amp;&amp;</div>
<div class="line">  !is_context&lt;T&gt;</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab4dd11c6c8c471494aaa6ac02fbaa36d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4dd11c6c8c471494aaa6ac02fbaa36d">&#9670;&nbsp;</a></span>is_pattern</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_pattern = !<a class="el" href="namespacegrppi.html#a1a507b16908e2fc55a42c444ce34602a">is_no_pattern</a>&lt;T&gt;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af507e25fcb4d10f45c1d717d06c0bd79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af507e25fcb4d10f45c1d717d06c0bd79">&#9670;&nbsp;</a></span>is_pipeline</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_pipeline = <a class="el" href="structgrppi_1_1internal_1_1is__pipeline.html">internal::is_pipeline</a>&lt;std::decay_t&lt;T&gt;&gt;()</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a4759187bf78c23c2a80900e5ae296bbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4759187bf78c23c2a80900e5ae296bbc">&#9670;&nbsp;</a></span>is_queue</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_queue = <a class="el" href="structgrppi_1_1internal_1_1is__queue.html">internal::is_queue</a>&lt;T&gt;()</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abce2309ebb836d19490bfed222b35501"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abce2309ebb836d19490bfed222b35501">&#9670;&nbsp;</a></span>is_reduce</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool grppi::is_reduce = <a class="el" href="structgrppi_1_1internal_1_1is__reduce.html">internal::is_reduce</a>&lt;std::decay_t&lt;T&gt;&gt;()</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
</small></address>
</body>
</html>
